对于我正在使用的应用,用户可以使用CKEditor内联编辑文本 . 最近,我添加了2个我修改过的插件:stylescombo和bidi . 对于这两个,我只是给它一个新名称并修改了单击文本时发生的情况 .

当用户点击要编辑的文本块时,我会动态地将CKEditor加载到它上面,如下所示:

HTML: <div id="text-content">sample text</div>

JS: var $text = $("#text-content");
    $text.attr("contenteditable", true);
    CKEDITOR.disableAutoInline = true;
    ...
    // toolbarOptions is an array of toolbar options
    var editor = CKEDITOR.inline("text-content", {toolbar: toolbarOptions});

当用户点击CKEditor时,我会像这样销毁编辑器:

editor.destroy(true);
editor = null;
$("#text-content").removeAttr("contenteditable");

现在所有这些都是第一次正常工作,但是当我再次尝试编辑文本内容时,CKEditor无法加载而没有任何错误 . 我控制台记录“编辑器”变量,我看到编辑器的状态是“卸载” . 经过一些调试后,我发现如果我没有加载上面两个自定义插件中的一个,编辑器可以在被销毁后重新加载 . 任何想法为什么这两个插件正在影响内联CKEditor的重新加载?

演示:http://jsfiddle.net/22A6F/