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
在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
相关文章推荐
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- Android http 请求——AsyncHttpClient集成【解决重定向问题、setEnableRedirects 方法异常、线程中调用异常问题】
- HttpURLConnection 访问网页异常 问题的解决方法
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
- redis异常解决:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- 【转载】如何将dede织梦data目录正确迁移及引起的问题解决方法
- jedis,spring-redis-data 整合使用,版本问题异常以及解决。
- 【转载】jQuery Validate验证框架 + CKEditor 无法验证问题的解决方法
- 解决MySQL Sending data导致查询很慢问题的方法与思路
- 解决MySQL Sending data导致查询很慢问题的方法与思路
- Magento 1.9使用sample data出现Access denied问题解决方法
- 关于"xampp中mysql中配置问题:Unknown initial character set index '48' received from server错误解决方法"
- VB中多个Winsock连续发送出现接收不到的异常问题解决方法
- SetUnhandledExceptionFilter无法捕获异常原因及解决方法
- 【解决方法】easyui中datagrid执行loadData方法出现异常
- AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决
- ganglia gmetad : is a 2.5 or later data stream 问题原因及解决方法
- 用set和data解决运输问题