1 回答

TA贡献1155条经验 获得超0个赞
可能的解决方案,在 IE11 中工作:
将对话框设置为
modal: false
。使用 jquery 的 css 类添加自定义叠加层。
删除对话框关闭时的自定义覆盖。
(我的代码示例还需要删除编辑器以重用该openDialogEditor()
函数 - 当然这也可以以不同的方式处理。)
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);
}
});
如果您有更好的解决方案、建议、改进:请评论。:)
添加回答
举报