Bangnie--website construction, website maintenance service provider.

News

网站后台管理中编辑器在ie8下按纽无法显示的解决技巧

Author:Website construction      AddDate:2017/12/23      From:Bangnie      Hits:15732

方法一:

今天把ie升级到8.0竟然出现点击ewebeditor在线编辑器按钮无法弹出编辑框的问题,就是所有按钮都失效了。
查看了一下网络资料,测试了一下都不能用,最好自己研究出一个可行的解决办法,并测试成功了。
具体操作如下:
打开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,以便在IE87及遨游里能够正常使用编辑器

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的人少了,一时我也不知道去哪测试。

Related Information