后台eWebEditor⽂本编辑器ie10不能⽤的解决⽅法(兼容
模式)
问题:
最近IE升级到IE10,发现原来eWebEditor⽂本编辑器不能⽤了,
editor版本解决⽅案:
只要改⼀下IE10的兼容性模式。
⽅法:按F12 如图勾选兼容性视图。
然后再打开后台,编辑器就可以⽤了。
当然你也可以通过修改js实现兼容效果
打开editor.js
到if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
昨天ie8正式发布了,偶也去下载了⼀个,感觉很爽,还在美的时候,突然发现很多⽹页都出问题,更可⽓的是⾃⼰的⽹站编辑器也不管⽤了,所有的按钮都不管⽤,即使是别的浏览器也都不管⽤,我这叫⼀个汗。于是就去360论坛⼈问,因为我⽤的360浏览器以为是360浏览器的问题。问了半天也没有⼈回答我于是我就去⽹上,由于今天才出的ie8所以⽹上根本也没有这⽅⾯的解决办法,于是到了第⼆天,⽹上终于有了这样的贴⼦,所以我也了解决办法。
在⼀个哥们的贴⼦中是这样写的,打开include下⾯的editor.js⽂件,有这样的段代码:
if (element.YUSERONCLICK) {
eval_r(element.YUSERONCLICK + "anonymous()");
}
或
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
或
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
说是因为ie8屏蔽了anonymous⽅法所以要改成click⽅法,于是就改成这样,但是我⼜有了⼀个惊⼈的发现,那就是改成这样之后在ie7下编辑器就不管⽤了,痛苦之余我⼜去⽹上查,⽹上果然⾼⽔如云,果然在csdn上到了答案:
复制代码
代码如下:
if(navigator.appVersion.match(/8./i)=='8.')
{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)");
}
else
{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
}
如果还是不⾏⽤下⾯这个
复制代码
代码如下:
if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/7./i)=='7.'){
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)"); //IE8 or IE7
} else {
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()"); //IE6
}
把代码改成这样之后在ie7和ie8下就都管⽤了。
=========================================================================
以上是⼀个⼈的说话,以下是另⼀个⼈的
还有由于那个eWebEditor编辑器的问题。
今天检查公司⼀⽼站后台,发现eWebEditor编辑不能使⽤,按照⽹上的答案
到editor.js⽂件,把这⽂件⾥的⼀⾏语句if(element.YUSERONCLICK)eval_r(element.YUSERONCLICK + “anonymous()”); 修改成
复制代码
代码如下:
if(navigator.appVersion.match(/8./i)==’8.’)
{
if(element.YUSERONCLICK)eval_r(element.YUSERONCLICK + “onclick(event)”);
}
else
{
if(element.YUSERONCLICK)eval_r(element.YUSERONCLICK + “anonymous()”);
}
原因是IE8不⽀持anonymous(),所以要换成onclick(event)事件。
修改之后⼀同事使⽤IE7竟然不能正常使⽤该编辑器,修改之后可以。
估计还是那⾏代码的问题。恢复以前的,IE7可以⽽IE8不可以。看来还必须先判断IE版本然后再写不同的代码。
于是就使⽤了下⾯的代码:
复制代码
代码如下:
if(navigator.appVersion.match(/8./i)=='8.'){
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval_r(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_r(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
}
前⼏天看新闻说傲游开发⾃⼰的内核浏览器,希望众多浏览器在兼容代码上好⼀些,不要浪费编写代码者的那么多不兼容问题、调试不兼容问题的时间。
如果上⾯不⾏的话,请使⽤下⾯的⽅法:
复制代码
代码如下:
try{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
}
catch(e){
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)");
}
我⽤下⾯这个⼈的⽅法解决了
类似⽂摘:
原创]简单解决ewebeditor在IE7、IE8下失效问题
EWEBEDITOR在IE7、IE8下,图⽚上传等按钮总是不能正常弹出,搞的⼈很郁闷,在⽹上搜索了⼀下解决⽅法,到代码编辑器⽬录JS下的EDITOR.JS⽂件,到如下代码
复制代码
代码如下:
if (element.YUSERONCLICK) {
eval_r(element.YUSERONCLICK + "anonymous()");
}
再换成如下代码:
复制代码
代码如下:
if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/7./i)=='7.'){
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)"); //IE8 or IE7
} else {
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()"); //IE6
}
替换后问题依旧。TNND,⼜⼀位仁兄写的代码换上:
复制代码
代码如下:
if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK + "anonymous()");
}
还是不⾏,两个代码都未能解决问题,郁闷,看来,要不是浏览器中毒了,造成JS不能正常取得版本号,就是我RP太差。所以引起程序不知道如何处理判断。我看了⼀下两位作者的代码,虽然写的很好,但是都有局限性。既然知道了造成问题的原因,那就好办了,⾃⼰写吧
⽤这段代码吧:
复制代码
代码如下:
try{
eval_r(element.YUSERONCLICK + "anonymous()");
}
catch(error)
{
eval_r(element.YUSERONCLICK + "onclick(event)");
}
写完以后再次测试,OK,正常了,哈哈!!我不管它是IE7还是IE8,我都往下执⾏,⼀个错了我就执⾏另⼀个,管它呢,哈哈,正常解决,容错语句就是挺管⽤的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论