用IE8进行网站后台编辑时,发现编辑器中的插入图片、插入影片、插入超级链接等功能不能用了,也就是说不能再弹出网页对话框了。
      查阅大量资料后发现,IE8较之以前的IE6和IE7有较大改动。而我的网站是在IE7的环境下开发的,虽然网站在IE7下可以正常运行,但到了IE8就不见得那么好用了。造成上述问题的原因是IE8不支持anonymous()这个函数,而支持相同功能的onclick(event);IE6和IE7却恰好相反。
      终极解决方案是,利用判断语句确定用户的IE版本,再根据版本不同选择不同的函数,来实现相同的功能。以我的网站代码为例:在editor.js文件,有这样的段代码:
     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()")
    将其替换为:
if(navigator.appVersion.match(/8./i)==''8.'') 
    { 
      if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)")   
   } 
else
   { 
     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()") 
}
      这样,问题就解决了。
-
方法一:重置IE9后,然后修改兼容性视图就可以了。问题出在兼容性视图上了。方法二::打开 Editor/Js/Editor.js
也有可能在\Edit\Include/Editor.js 主要是找到编辑器中的Editor.js
168行左右:
用记事本打开,查找anonymous()可以找到
把
 if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()")
改为:
 if(navigator.appVersion.match(/8./i)==''8.''){
 if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)")
 }
 else{
 if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()")
 }
如果希望再兼容傲游浏览器,就如下修改:
if(navigator.appVersion.match(/8./i)==''8.'' || navigator.appVersion.match(/MAXTHON/i)==''MAXTHON''){
    if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)")
}else{
    if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()")
}方法三:卸载IE9回滚到IE8