Javascript 如何在从DOM中删除编辑器后删除CKeditor实例
关于如何删除CKeditor实例,有一些相关的问题,大多数都是使用Javascript 如何在从DOM中删除编辑器后删除CKeditor实例,javascript,jquery,dom,ckeditor,dom-events,Javascript,Jquery,Dom,Ckeditor,Dom Events,关于如何删除CKeditor实例,有一些相关的问题,大多数都是使用.destroy()。但是,当编辑器仍在dom中时,这是很好的。我有一种情况,CMS正在添加一个文本区域,我正在将其转换为一个编辑器。cms从dom中移动元素(在不相关的事件上) 我可以将一个事件绑定到该无关事件的completeemit,这样就可以重新初始化CKeditor。所有这些都很好,但当我删除那些遗留实例时,我会出现错误,我就是这样尝试的: for (var name in CKEDITOR.instances) {
.destroy()
。但是,当编辑器仍在dom中时,这是很好的。我有一种情况,CMS正在添加一个文本区域,我正在将其转换为一个编辑器。cms从dom中移动元素(在不相关的事件上)
我可以将一个事件绑定到该无关事件的complete
emit,这样就可以重新初始化CKeditor。所有这些都很好,但当我删除那些遗留实例时,我会出现错误,我就是这样尝试的:
for (var name in CKEDITOR.instances) {
CKEDITOR.instances[name].destroy(true);
}
但它会产生一个错误:
未捕获的TypeError:无法读取null的属性“clearCustomData”
我知道,您将看到代码:
null
,这确实有效,但不会杀死在CKeditor实例上创建的对象。i、 e.CKEDITOR.htmlDataProcessor
(在Chrome开发工具中使用'Profiles->Heap snapshot'可以很好地演示这个问题)
更新:
感谢@oleq提供的信息,我查看了讨论,但无法确定如何添加到讨论中,因此在此处更新:
请查看dom更改前后mem配置文件的图像
您将看到CKEDITOR属性的大小确实增加了
我注意到,CKEDITOR.instances.editor1.element.$
存储了CKEDITOR绑定到/触发的元素。是否检查该元素上的现有ckeditor实例,这将销毁现有的ckeditor.htmlDataProcessor
etc对象,并在将新实例添加到文本区域之前重新创建
这听起来是否合适,或者这被视为边缘案例的事实是否意味着其优先级太低?如果认为这是一个合理的解决方案,我很乐意投入工作并拉取请求?控制CKEditor实例销毁的算法不是为处理边缘情况而设计的。错误被抛出,因为基本上
editor.window.getFrame()
返回null
这是一种边缘情况。控制CKEditor实例销毁的算法不是为处理边缘情况而设计的。错误被抛出,因为基本上
editor.window.getFrame()
返回null
这是一种边缘情况。控制CKEditor实例销毁的算法不是为处理边缘情况而设计的。错误被抛出,因为基本上
editor.window.getFrame()
返回null
这是一种边缘情况。控制CKEditor实例销毁的算法不是为处理边缘情况而设计的。错误被抛出,因为基本上
editor.window.getFrame()
返回null
这是一个边缘案例。问题的根本原因似乎已在 简而言之,在调用destroy之前,iFrame元素会从DOM中分离/删除,这会导致ckEditor getFrame方法返回null
在升级到最新的ckEditor版本之前,我的解决方法是将销毁放在一个try/catch中。问题的根本原因似乎已在中修复 简而言之,在调用destroy之前,iFrame元素会从DOM中分离/删除,这会导致ckEditor getFrame方法返回null
在升级到最新的ckEditor版本之前,我的解决方法是将销毁放在一个try/catch中。问题的根本原因似乎已在中修复 简而言之,在调用destroy之前,iFrame元素会从DOM中分离/删除,这会导致ckEditor getFrame方法返回null
在升级到最新的ckEditor版本之前,我的解决方法是将销毁放在一个try/catch中。问题的根本原因似乎已在中修复 简而言之,在调用destroy之前,iFrame元素会从DOM中分离/删除,这会导致ckEditor getFrame方法返回null
在升级到最新的ckEditor版本之前,我的解决办法是将销毁放在try/catch中。谢谢。已经用建议/附加信息更新了问题谢谢。已经用建议/附加信息更新了问题谢谢。已经用建议/附加信息更新了问题谢谢。已使用提案/附加信息更新问题