第二次之后无法在CKeditor中显示内容
在我的项目中,Ckeditor是网页的一部分,该网页使用GWT编码。因此,CKeditor的接口使用Java 无论何时显示网页,CKeditor都会通过第二次之后无法在CKeditor中显示内容,ckeditor,init,destroy,Ckeditor,Init,Destroy,在我的项目中,Ckeditor是网页的一部分,该网页使用GWT编码。因此,CKeditor的接口使用Java 无论何时显示网页,CKeditor都会通过setData()向CKeditor传递一个HTML,CKeditor应该显示该HTML 问题是:CKeditor有时不会显示HTML。它的内容只是空的,尽管我非常确定html已经被传递到setData() 我试过几种方法来解决这个问题,但都不管用 我的方法 使用DOM.createTextArea() 调用myEditor=CKEDITOR.
setData()
向CKeditor传递一个HTML,CKeditor应该显示该HTML
问题是:CKeditor有时不会显示HTML。它的内容只是空的,尽管我非常确定html已经被传递到setData()
我试过几种方法来解决这个问题,但都不管用
我的方法
- 使用
DOM.createTextArea()
- 调用
初始化CKEDITORmyEditor=CKEDITOR.replace(textArea,config)
- 调用
设置内容myEditor.setData(html)
myEditor.setData(html2)
来显示另一个html,但这次CKeditor什么也没有显示
第一个解决方案(不起作用)
在网页隐藏之前,我将代码更改为调用myEditor.destroy()
,当网页再次可见时,我再次调用CKEDITOR.replace(textArea,config)
,然后调用myEditor.setData(newHtml)
这次它在IE和FF中工作,但在Chrome和Edge中不起作用,它一直显示第一次加载时的内容,而不是显示新的HTML
第二种解决方案(不起作用)
当网页再次可见时,我将其更改为调用CKEDITOR.inline(textArea,config)
,而不是CKEDITOR.replace(textArea,config)
,而destroy()
和setData()
仍按相同顺序调用。这一次,编辑再次没有显示第二次的任何内容
最后一次尝试
我的最后一种方法是不调用destroy()
,而是在每次显示CKeditor之前创建一个新的TextArea
,并调用CKeditor.replace(TextArea,config)
和setData(html)
。这似乎工作得很好,但有时CKeditor仍然显示空内容
谁能帮我解决这个问题
我正在使用CKeditor 4.5.8。最后我找到了解决方案: 在隐藏ckeditor之前,调用editor.destroy(true)和delete编辑器。(在此之前,我只调用了editor.destroy()[注意:没有'true',],这不太好用) 代码如下:
if (editor) {
editor.destroy(true);
delete editor;
}
使用这个非常简单有效的java脚本代码
<script>
$(function () {
CKEDITOR.timestamp= new Date();
CKEDITOR.replace('editor1');
});
</script>
$http.get(url).success(function(){
CKEDITOR.replace('editor1');
});