1

複数の ckeditors を含むページがあります。

http://i.stack.imgur.com/8l4vB.png

エディターのラッパーはドラッグ可能です。エディターの 1 つを別の位置にドラッグ アンド ドロップすると、編集できなくなり、コンテンツが消えます。

http://i.stack.imgur.com/yvSzs.png

その特定のエディターを破棄してから再初期化することでこれを解決できると思いましたが、そうすると次のエラーが発生します。

キャッチされていない TypeError: null ckeditor.js:635 のメソッド 'clearCustomData' を呼び出せません

誰もこの問題に遭遇したことがありますか?

これは私が使用しているJavaScriptです:

function initSortable() {
    $('.sortable').sortable({
        handle  : '.sortable-handle'
    }).bind('sortupdate', function(e) {
        updateBlockOrder();
        // Get the dropped content block
        var _el = $(e.delegateTarget).children('.dropped');
        if (_el.find('.rte').length) {
            // Get id of each area and re-initialize
            _el.find('.rte').each(function(){
                var _id = $(this).attr('id');
                console.log(_id);
                var editor = CKEDITOR.instances[_id];
                console.log(editor);
                editor.destroy();
            });
        }
    });

}

出力は次のとおりです。

form-blocks-2-body app.js:540

b {element: CKEDITOR.dom.element, elementMode: 1, name: "form-blocks-2-body", _: Object, commands: Object…}
_: Object
blockless: false
commands: Object
config: b
container: CKEDITOR.dom.element
dataProcessor: CKEDITOR.htmlDataProcessor
element: CKEDITOR.dom.element
elementMode: 1
filter: CKEDITOR.filter
focusManager: CKEDITOR.focusManager
getClipboardData: function (b,c){function e(a){a.removeListener();a.cancel();c(a.data)}
id: "cke_3"
instanceReady: true
keystrokeHandler: CKEDITOR.keystrokeHandler
lang: b
langCode: "en"
loaded: true
mode: "wysiwyg"
name: "form-blocks-2-body"
plugins: Object
readOnly: false
resetUndo: function (){b.reset();a.fire("saveSnapshot")}
status: "ready"
tabIndex: 0
templates: Object
toolbar: Array[13]
toolbox: t
ui: CKEDITOR.ui
__proto__: Object
 app.js:542

Uncaught TypeError: Cannot call method 'clearCustomData' of null 
4

0 に答える 0