您的位置:首页 > 其它

CKEditor setData方法 异常问题解决

2015-04-17 13:34 2186 查看
从官网下载的最新版的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐