当前位置: 代码迷 >> Web前端 >> eWebEditor异常(不支持 ie7 ie8 maxthon 及其它浏览器)终极办法
  详细解决方案

eWebEditor异常(不支持 ie7 ie8 maxthon 及其它浏览器)终极办法

热度:418   发布时间:2012-10-27 10:42:26.0
eWebEditor错误(不支持 ie7 ie8 maxthon 及其它浏览器)终极办法

找到editor.js文件,把这文件里的一行语句
if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “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.’)
{
if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “onclick(event)”);
}
else
{
if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “anonymous()”);
}?

原因是IE8不支持anonymous(),所以要换成onclick(event)事件。
修改之后一同事使用IE7竟然不能正常使用该编辑器,修改之后可以。
估计还是那行代码的问题。恢复以前的,IE7可以而IE8不可以。看来还必须先判断IE版本然后再写不同的代码。

于是就使用了下面的代码:
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.'){
??? if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}else{
??? if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}

修改之后在IE8和IE7均可以正常使用eWebEditor编辑器。
但是在装有IE8的机器上使用傲游浏览器竟然不能使用该编辑器,纳闷了,傲游是IE内核,应该可以呀。
于是就使用alert(navigator.appVersion)弹出信息,结果发现竟然是IE7?
晕了!竟然不一样?难道傲游没有用到真正的IE8内核?还是显示的问题?
难道再加一句判断傲游的?
没办法:
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()");??
}?
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()");
}
前几天看新闻说傲游开发自己的内核浏览器,希望众多浏览器在兼容代码上好一些,不要浪费编写代码者的那么多找不兼容问题、调试不兼容问题的时间。
如果上面不行的话,请使用下面的方法:
try{???
??????? if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");???
??? }???
??? catch(e){???
??????? if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");???
??? }?