正确销毁ckeditor实例

正确销毁ckeditor实例,ckeditor,destroy,Ckeditor,Destroy,使用版本4.4.7 我的CKEDITOR加载到页面中打开的模式窗口中。我注意到,当我重新打开模态时,编辑器不会加载。解决方案是销毁实例,然后在textarea上重新应用它 但我似乎无法正确地摧毁它。基于此,我尝试了以下所有尝试,但不断出现错误: TypeError: a is null http://domaim/ckeditor/ckeditor.js Line 778 我尝试了以下方法(为了简单起见,我将所有的尝试合并到一个代码块中,但它们是一个接一个地尝试的): 更新 我发现,只要使用

使用版本4.4.7

我的CKEDITOR加载到页面中打开的模式窗口中。我注意到,当我重新打开模态时,编辑器不会加载。解决方案是销毁实例,然后在textarea上重新应用它

但我似乎无法正确地摧毁它。基于此,我尝试了以下所有尝试,但不断出现错误:

TypeError: a is null
http://domaim/ckeditor/ckeditor.js
Line 778 
我尝试了以下方法(为了简单起见,我将所有的尝试合并到一个代码块中,但它们是一个接一个地尝试的):

更新
我发现,只要使用
replace
方法,即使没有先销毁,也会重新创建。我想这就是解决办法

当我想重新加载CKeditor时,我遇到了同样的问题,这段代码解决了我的问题。 要销毁旧实例使用

if(CKEDITOR.instances.editor1)
CKEDITOR.instances.editor1.destroy();
我们将检查实例是否已经创建。 要重新加载CKeditor,我们将使用

 CKEDITOR.replace();

如果您打算重新初始化编辑器,我肯定会考虑将true作为参数传递给destroy。我有一个网格,我点击每一行,在jquery模式对话框中调出信息。除非我将“true”作为参数传递,否则我会发现setData()不起作用,即使我正在设置数据并且确实销毁了前一个实例,旧数据仍会显示在编辑器中。因此,请使用:

var editor=CKEDITOR.instances['txt\u LH\u Update\u Body'];
if(editor){editor.destroy(true);}

谢谢-如前所述,这与我上面的
尝试1
相同,这似乎不起作用
 CKEDITOR.replace();