eWebEditor不支持IE8的解决方法-js报错:缺少对象 editor.js

网站后台编辑页面,无法上传文件和图片,点击编辑器的按钮没反应,IE8显示JS错误,缺少对象,editor.js 172行。

网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
时间戳: Tue, 24 Sep 2013 00:51:29 UTC
消息: 缺少对象
行: 172
字符: 3
代码: 0
URI:http://www.lawnchina.com/back_manage/admin/news_manage/editor.js上网一查,原来是eWebEditor的浏览器兼容问题。以前在IE6下面是没问题的。

editor.js 172行代码是:

[javascript] view plaincopyprint?
01.if (element.YUSERONCLICK) { 
02.  eval(element.YUSERONCLICK+"anonymous()"); 
03.} 
if (element.YUSERONCLICK) {
  eval(element.YUSERONCLICK+"anonymous()");
}原因是ie8屏蔽了anonymous方法所以要改成onclick方法。网上的解决方法如下:(加个判断浏览器的语句)

[javascript] view plaincopyprint?
01.if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){ 
02.  if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"onclick(event)");   
03.}else{ 
04.  if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"anonymous()"); 
05.} 
if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){
  if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"onclick(event)"); 
}else{
  if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"anonymous()");
}经测试,IE8和ie6下面是没问题的。但是在IE7下有问题。navigator.appVersion返回的字符串在各种IE的情况下并不与实际情况一致,比如在同时安装了IE8和以IE内核的浏览器(比如搜狗浏览器)的情况下,并不是返回MSIE 8 而是MSIE 7。因此网上这种解决办法是并不总是有效的。

现在在网上发现的一种可行办法是:

[javascript] view plaincopyprint?
01.try{  
02. if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"anonymous()");  
03.}  
04.catch(e){  
05. if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"onclick(event)");  
06.} 
try{
 if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"anonymous()");
}
catch(e){
 if(element.YUSERONCLICK) eval(element.YUSERONCLICK+"onclick(event)");
}此种方法在各种IE下都是有效的。(ewebeditor目前好像只支持IE)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值