有客户反映了升级到IE8浏览器后,后台编辑器按钮失效、点击后没反应的问题。登录客户后台发现使用的是一款流行的eWebEditor编辑器,在ie8中,默认情况下,居然会无法使用ewebeditor的弹出框功能。根据错误,查看代码(编辑器所在目录/Include/Editor.js)发现ewebeditor中使用了ie8不支持的anonymous()方法。如下:
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
由于IE8已不支持anonymous()方法,Netscape浏览器支持onclick()方法,我们换成onclick()方法,测试了一下,成功!
由于浏览器的兼容性不同,最终代码如下:
if(navigator.appVersion.match(/8./i)=='8.') { if(element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); } else { if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); }
也可以使用:
try{ if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); } catch(e){ if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); }
使用时注意以上的引号为半角的!