我正在使用jQuery对话框呈现通过AJAX获取的表单。在某些表单中,我使用CKEditor来处理文本区域。编辑器在第一次加载时显示得很好。
当用户取消对话框时,我会删除内容,以便它们在稍后的请求中重新加载。问题是,一旦对话框重新加载,CKEditor就会声称编辑器已经存在。
uncaught exception: [CKEDITOR.editor] The instance "textarea_name" already exists.
这个API包含一个销毁现有编辑器的方法,我看到有些人声称这是一个解决方案:
if (CKEDITOR.instances['textarea_name']) {
CKEDITOR.instances['textarea_name'].destroy();
}
CKEDITOR.replace('textarea_name');
这对我来说不起作用,因为我收到了一个新的错误:
TypeError: Result of expression 'i.contentWindow' [null] is not an object.
这个错误似乎发生在“destroy()”而不是“replace()”。是否有人遇到过这种情况并找到了不同的解决方法?
是否可以“重新渲染”现有的编辑器,而不是销毁和替换它?