无法销毁CKEditor实例

3
我正在尝试使用以下代码刷新所有的CKEditor实例:
        for(name in CKEDITOR.instances)
        {
            console.log(name);
            CKEDITOR.instances[name].destroy();
            //Also tried this
            //CKEDITOR.instances[name].destroy(true);

        }
        CKEDITOR.inlineAll();

我收到了这个信息:

Uncaught TypeError: Cannot call method 'getRanges' of null.

有趣的是,如果我直接在控制台中使用该代码,则可以正常工作。有人知道如何解决吗?

我建议使用JS调试器进一步调查错误,Chrome开发工具和Firebug都支持错误中断。您应该检查调用堆栈并找出为什么会出现null。 - Frances McMullin
谢谢你的帮助。我想如果我决定继续使用CKEditor,我将不得不解决这个问题... - Robyflc
1
我正在使用 CKE 4.5.3,仍然看到这个错误。有人找到了任何方法至少不将其记录为错误吗? - Will Hitchcock
我正在使用 CKE 4.6.2,仍然看到这个错误。有人找到了任何方法至少不将其记录为错误吗? - iniravpatel
3个回答

0

请查看此错误报告:http://dev.ckeditor.com/ticket/10219

在4.1和4.0.3中,我们已经部分修复了这个问题,但是...只是部分地 :). 然而,这个错误不应该造成任何问题-它完全是无害的。


它并不完全无害。在我的情况下,我在一个页面上有几个编辑器,只有第一个起作用。 我会尝试4.1看看会发生什么。 - Robyflc
我尝试了4.1版本,但是它并没有解决问题,反而让我遇到了更多的问题... =( - Robyflc
我猜你的问题完全是在别处。我调查了这个工单,发现错误是在 setTimeout 的本地事件回调函数中抛出的,因此它不会阻塞其他代码。关于 4.1 版本 - 它引入了全新的高级内容过滤器,需要一些工作来在某些情况下进行配置 - 阅读 http://ckeditor.com/blog/CKEditor-4.1-Released。 - Reinmar
你可能对这些新问题是正确的。它们一定是由于 ACF 引起的。但是 destroy 方法的问题在 4.1 版本中仍未修复。 - Robyflc

0

我也遇到过同样的问题,但在 ck-editor-dev 存储库中似乎已经得到修复。 两天前,有人为 CKEDITOR 4.1.1 里程碑提交了一个修复程序。 再次检查 http://dev.ckeditor.com/ticket/10219 ,以访问 git 中的更改链接。


0

我也遇到了同样的问题。在执行CKEDITOR.instances[name].destroy()之前,你可以尝试添加一个超时时间(100毫秒或更多)。

示例:

setTimeout(function(){
  CKEDITOR.instances[name].destroy();               
},100);


你的答案可以通过添加更多的支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是否正确。你可以在帮助中心找到有关如何撰写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接