我正在使用 jquery 对话框来呈现表单(通过 AJAX 获取)。在某些表单上,我为 textareas 使用了 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()”上。有没有人经历过这个并找到了不同的解决方案?
是否可以“重新渲染”现有的编辑器,而不是破坏和替换它?