• 网站文本编辑器支持ie8

    2010-09-13

      近刚来的这个公司有点忙,都没时间学习了,所以好久都没有发表我关于学习中遇到问题的博文了,公司这边是好多以前做的网站维护中出现问题,当然就得我这个新来的程序员来处理,还有许多网站遭遇挂马等等问题,这几天我就准备写一篇比较基础篇的防挂马,当然也不是自己完全领悟的,是根据自己的经验和网上一些前辈的知识总结出来的,希望可以帮助一些比我还新的新手解决问题,可以不用走我走过的歪路,这次先说个今天刚刚遇到的小问题。

      今天上午同事突然问我,说怎么我以前做的一个网站后台传不上去图片了,我第一个想法就是以前的既然没问题,那现在出问题无非就是服务器或他的浏览器出现了问题,服务器的问题一般就是可能服务器管理员设置了权限,导致文件不能上传,而浏览器的就比较麻烦了,因为现在本来IE和火狐的两大阵营给我们这些从事网站制作的工作人员带来了很多不便,当然还是因为自己技术不行,不然就不会有什么不便,然后我就登陆了那个网站的后台测试了一下,在我这边一起正常,我又走过去让他给我演示了一下他那边出现的问题,问题是后面的文本编辑器点击上传图片的按钮后没有反应,我看了下他的浏览器,是前几天刚刚出来的IE8,唉,无奈,出IE7的时候就带来了很多问题,现在IE8又要让人头疼几天了,介于我自己的技术不是很高,所以我就打算直接上网上先搜搜结果,运气很好,看来这个问题是近的热门,对了,刚才忘了说我做的网站和大多数网站一样都是用的ewebeditor在线文本编辑器,呵呵,我不评价漏洞之类的问题,怎么说都是免费的,而且已经是很好用的东西了。

      大概问题原因就是IE8屏蔽了一个功能,解决办法就是在ewebeditor文件夹里找Editor.js这个文件,网上的都说是在include文件夹,不过我相信很多和我一样为了尽量安全一点把路径都改过的,我的是在一个叫JS的文件夹中,当然你的在什么地方你应该知道,如果是用的别人的后台系统那就搜索下,一般来说Editor.js这个文件的名字是不会改的,在这个文件中有

    if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');

    这句代码,处理这个问题的关键就在'anonymous()'这里,IE8中anonymous不被支持,所以要用 'onclick(event)',但如果单纯的改成

    if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)');

    那么在IE7或其他版本又会出现问题,那么就加个判断,后改成:

    if(navigator.appVersion.match(/8./i)=='8.') {   if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)'); } else {   if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');
      这样一来就没有问题了,如果现在正在因为这个而头痛的同僚,可以常识按我说的修改一下,修改后记得好清一下缓存,因为缓存比较喜欢把图片或JS之类的文件保存到你自己的电脑上直接调用。写得好像有点乱,我总结一下就是:

    找到Editor.js这个文件,然后把其中

    if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');

    这句代码改成

    if(navigator.appVersion.match(/8./i)=='8.') {   if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)'); } else {   if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');

    保存-清理缓存-在打开从新尝试,看看你的ewebeditor在IE8下能不能点出来那些小的框框。