今天遇到一个问题:我的asp网站ewebeditor在线编辑器上的按钮居然点击没有反应了,前几天还是正常的,我找了好久都没有找出原因来。后台,我去了另一台电脑上试了一下,居然正常。奇怪。后来去网上搜索了一下,发现是升级IE引起的。前几天我的电脑的IE由6.0升级到8.0,而ewebeditor在线编辑器对IE版本的兼容性不是怎么好,所以才引起这个了。我在网上找到了解决方法,能够兼容IE6,IE7,IE8三个版本。
方法一:
具体操作如下:
打开editor.js
找到if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
将其修改为:
if (element.YUSERONCLICK)
{
try
{
eval(element.YUSERONCLICK + "onclick(event)");
}
catch (e){
eval(element.YUSERONCLICK + "anonymous()");
}
}
再保存,然后就可以了。
升级成ie8.0后无法正常使用ewebeditor是因为anonymous()函数在ie8.0中不能使用,ie8.0中只能用
onclick(event),而其他8.0以下的只能用anonymous(),所以这里要使用javascript的try函数,对客户端ie用8.0代码进行试运行。如果出错,再尝试8.0以下的代码进行处理。
方法二:
由于IE升级,造成网站后台编辑器(eWebEditor)的按钮不能使用,如:插入图片等功能。有些第三方浏览器也不行,因为它们使用了IE内核,如遨游。那么如何解决呢,搜索了网上资料,想必肯定不可能只有我一个人这么倒霉吧。果然,很多朋友都碰到,解决方法也很多,大都差不多。自己结合自己的解决过程,说明下,一步到位,省得麻烦。
方法应该有两种,一个是修改editor.js文件,一个是升级ewebeditor版本(第二种方法我没有尝试,哪位朋友试过的可以秀下)
解决步骤如下:
1、找到editor.js文件(文件搜索下,立刻找到)
2、找到如下红色代码
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
3、用下面蓝色代码替换上面的红色代码
//修改ewebeditor1,以便在IE8\7及遨游里能够正常使用编辑器
if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null || navigator.appVersion.match(/MAXTHON/i)=='MAXTHON')
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
//修改ewebeditor1结束
4、说明:
就是当点击按钮的时候激活对应函数,IE8正式版对anonymous()限制了,把anonymous()修改为onclick(event)就可以在IE8里使用了,但是IE7及之前的版本却不行,所以为了能够在IE8及前面的版本都能使用,所以加上了个判断语句,而为了在遨游里也能使用,所以又加了个判断语句,结合起来就是如下语句了: if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null || navigator.appVersion.match(/MAXTHON/i)=='MAXTHON')
方法三:
前几天ie8正式公布了,当天中午我就去下载了一个迫不急待的将自己的浏览器升级到ie8,偶还刻意的去升级了一个英文版的,感觉英文版的超级爽,就在我还在为ie8的一些新功能大爽特爽时,一个龌龊的消息来了,我网站后台的编辑器都不管用了。
我有好几个网站,编辑器全用的那一个,也就是ewebeditor编辑器,因为这个鸟编辑器我前几天几乎所有的网站都被黑客攻击,今天又遇到这个问题,让我顿时对这个编辑器没了好感,所以近期也在自己开发一个编辑器,欢迎大家随时关注我的天道酬勤博客,我会把编辑器的源代码和系统讲解都会在那里公布,打造一个纯开源纯免费的编辑器。
问题是这样的,在ie8下ewebeditor的所有按钮都无效,因为ie8是当天发布的,所以网上也没有这样的解决办法,然后就换360浏览器,没想到360浏览器用的也是ie的内核,还是一样,没办法只能等等看了,毕竟这个编辑器不是自己写的,一时半会儿也找不到解决办法,于是到了第二天,终于在网上找到了解决办法:
是因为ie8屏蔽了anonymous方法所以要改成onclick方法,打开include下面的editor.js文件,有这样的段代码:
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous()”);
把那个anonymous方法改成onclick就可以了。
问题是解决了,心情也舒畅了,结果没过两个小时我的会员就像我反应页面出问题,我换到别人的电脑上一看,这叫一个汗,原来把那个方法改成onclick之后在ie7下面就不管用了,毕竟现在很多人用的还是ie7,这叫一个头疼,于是还是去网上找,总是感觉不可能是我一个人遇到这样的问题。
最后果然还是在csdn上找到了答案:
if(navigator.appVersion.match(/8./i)==’8.’)
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “onclick(event)”);
}
else
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous()”);
}
用这样一段代码,对浏览器的版本做一个判断就好了,但是我却不知道在ie6下面管不管用,毕竟现在用ie6的人少了,一时我也不知道去哪测试。
总结:
如果随着ie的升级我们要不停的加判断,那岂不是更汗。所以还是自己做一个编辑器来的划算,毕竟我们用的ewebeditor是免费的官方不会提供免费的服务。有智趣和我一起开发编辑器的可以随时关注我的博客,到时候我会把源代码发出来供大家研究扩充。