0

私はCKEditor 4.4.7を使用していますが、CKEditorを含むモーダルダイアログを開いて背景色またはテキスト色ボタンを使用しようとしていて、リストから色を選択せず​​に閉じた場合に問題が発生します。コンソール エラーで次のメッセージが表示されます。

TypeError: a.contentWindow が null です TypeError: this. 。パネル。.iframe.getFrameDocument(...).getById(...) が null です

これらのボタンはもう機能しません。ボタンを押しようとすると、ページを更新しない限り、メニューが再び開かれません..

これは私のモーダル ダイアログのコードです。

<form action='' method='post'>
    <textarea id='editor1' name='editor1'></textarea>
    <script type="text/javascript">
        CKEDITOR.replace('editor1');
    </script>
    <input type="submit" name="submitComment" value="Submit" />
</form>

何が問題で、どうすれば解決できますか? ありがとう。

4

1 に答える 1

0

これは、ここで説明されている問題に似ています: https://forum.jquery.com/topic/can-t-edit-fields-of-ckeditor-in-jquery-ui-modal-dialog#14737000005423723 およびここ: http:/ /bugs.jqueryui.com/ticket/9087#comment:30 (ここで説明されている解決策はもう機能していないようです)。

私の解決策は次のとおりです。

orig_allowInteraction = $.ui.dialog.prototype._allowInteraction;
$.ui.dialog.prototype._allowInteraction = function(event){
    // address interaction issues with general iframes with the dialog
    if (event.target.ownerDocument != this.document[0]){
        return true;
    }
    // address interaction issues with dialog window
    if ($(event.target).closest(".cke_dialog").length){
        return true;
    }
    // address interaction issues with iframe based drop downs in IE
    if ($(event.target).closest(".cke").length){
        return true;
    }
    return orig_allowInteraction.apply(this, arguments);
};

Firefox で「再帰が多すぎる」というエラーが発生したため、この解決策は完全ではありませんが、ほとんどの場合は機能します。別の問題が発生している場合は、お詫び申し上げます。

于 2015-03-25T17:26:27.323 に答える