1 回答

TA貢獻1155條經(jīng)驗 獲得超0個贊
可能的解決方案,在 IE11 中工作:
將對話框設置為
modal: false
。使用 jquery 的 css 類添加自定義疊加層。
刪除對話框關閉時的自定義覆蓋。
(我的代碼示例還需要刪除編輯器以重用該openDialogEditor()
函數(shù) - 當然這也可以以不同的方式處理。)
1 + 2)
function openDialogEditor() {
var somedialog = document.createElement("div");
somedialog.id = "somedialog";
somedialog.innerHTML = '<div id="somediv"><textarea id="someid" name="somename" class="ckeditor" style="height:350px;">Stackoverflow is great!</textarea></div>';
document.body.appendChild(somedialog);
jQuery(somedialog).dialog({width: '800px', modal: false}).parent().promise().done(function(dlg) {
CKEDITOR.replace("someid");
dlg.css('z-index', '101').parent().append('<div id="ownOverlay" class="ui-widget-overlay ui-front" style="z-index:100"></div>');
});
}
擴展對話框關閉功能:
jQuery.widget("ui.dialog", jQuery.ui.dialog, {
close: function(ev) {
// remove custom overlay:
jQuery("#ownOverlay").remove();
// remove dialog and editor:
var dlgDiv = jQuery(ev.target).closest('div[role="dialog"]')[0];
dlgDiv.parentNode.removeChild(dlgDiv);
return this._super(ev);
}
});
如果您有更好的解決方案、建議、改進:請評論。:)
添加回答
舉報