第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jquery-ui 對話框中的 ckeditor - Internet Explorer 11

jquery-ui 對話框中的 ckeditor - Internet Explorer 11

慕姐4208626 2023-08-18 16:12:58
我正在嘗試在 jquery-ui 對話框中顯示 ckeditor,乍一看它工作正常。但在 IE11 中,當我單擊任何打開下拉菜單/選擇(例如顏色選擇)的工具按鈕時,鼠標松開時所需的覆蓋會短暫閃爍,但下一刻它就消失了。它適用于 Chrome 和 Edge,但目前 IE11 是最重要的目標瀏覽器。jQuery 是 1.11,jQuery-UI 是 1.11.4,ckEditor 是 4.15.1。我發(fā)現(xiàn),只有當對話框處于模式狀態(tài)時才會出現(xiàn)問題。這是一個示例: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: true}).parent().promise().done(function(dlg) {        CKEDITOR.replace("someid");    });}如果更改modal: true為modal: false,問題就得到解決 - 但對話框應該是模態(tài)的。我的解決方法:請參閱下面的答案。
查看完整描述

1 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

可能的解決方案,在 IE11 中工作:

  1. 將對話框設置為modal: false。

  2. 使用 jquery 的 css 類添加自定義疊加層。

  3. 刪除對話框關閉時的自定義覆蓋。

(我的代碼示例還需要刪除編輯器以重用該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);

    }

});

如果您有更好的解決方案、建議、改進:請評論。:)


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號