CKEditor在IE8,9中setReadOnly时报没有权限异常

19 篇文章 0 订阅
环境: CKEditor 4.0.1beta
浏览器: IE8 9

Ajax回调时设置

CKEDITOR.instances[id].setReadOnly(readonly) 


在IE下报错"没有权限",在chrome ff下正常。

跟代码发现压缩后ckeditor.js的以下代码运行异常
CKEDITOR.instances.id._.editable.$.isContentEditable


本来以为是iframe跨域导致的,不过本地代码没有跨域。

后来发现在setReadOnly之前调用了
CKEDITOR.instances[id].setData(_val);


之后属性就无法访问了。

原因: CKEDITOR的setData方法是延时操作的,实现是通过dataReady触发iframe中值的设置,因此在setData之后马上访问或修改iframe中的元素会报错,很有可能除了setReadOnly还有其他方法也会导致在IE中出现此问题。 因为是压缩代码,没有看过源码 不太了解这个锁是怎么回事儿。

另见帖子:
[url]http://jiangzhenghua.iteye.com/blog/793282[/url]

解决方法: 在setData后,对setReadOnly进行延时处理即可。

setTimeout(function(){CKEDITOR.instances[id].setReadOnly(isReadOnly)},150);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值