CKEditor setData方法 异常问题解决

来源:互联网 发布:汽车票制作生成器软件 编辑:程序博客网 时间:2024/06/14 03:25

从官网下载的最新版的CKEditor,网站里头测试时发现一个奇怪的问题:


在webkit浏览器下(除了IE,其他的就没测试了...),setData方法只有第一次初始化后是正确赋值至编辑框中的,当再次初始化CKEditor时内容怎么也无法显示出来,必须重新刷新整个页面,调试器观察发现里头根本没有数据。。。


由于在IE下正确显示了数据,代码应该没啥大问题,也不太可能每次要显示数据都刷新整个页面,于是一阵谷歌、度娘,无果。。。


鼓捣n久,不知道是bug还是神马,无奈只能自己想了个办法替代下,分析了下CKEditor生成的源码后,发现CKEditor输入框是放在一个iframe的body中的,


于是解决方法有了:

----->访问CKEditor中的iframe,获取里头body元素,直接暴力将数据插入。。。问题利马解决!微笑



测试代码:


_html = $("#list_newscontent").html();

CKEDITOR.instances.newsEditor.setData(_html,{callback:function(){

_input_value = CKEDITOR.instances.newsEditor.getData();

if(_input_value == "")
{
_outsidepage = $("#newsman_add");//自定义ID

_editor = $("iframe",_outsidepage)[0];//获取iframe对象

if(_editor != undefined)
{
$(_editor).contents().find("body").html(_html);//访问iframe中的body,并插入html
}
}

}});


后记:


为了便于访问,我在CKEditor代码外部设置了一个div标签并设置id,便于直接访问CKEditor中的iframe




0 0
原创粉丝点击