diff --git "a/eWebEditor\350\200\201\347\211\210\346\234\254\345\234\250\346\226\260\347\211\210IE\346\214\211\351\222\256\346\212\245\351\224\231\347\232\204\350\247\243\345\206\263\346\226\271\346\241\210.js" "b/eWebEditor\350\200\201\347\211\210\346\234\254\345\234\250\346\226\260\347\211\210IE\346\214\211\351\222\256\346\212\245\351\224\231\347\232\204\350\247\243\345\206\263\346\226\271\346\241\210.js" new file mode 100644 index 0000000000000000000000000000000000000000..bdbc3b77f54d9dd3dae76e8a3537f91109d3a5c1 --- /dev/null +++ "b/eWebEditor\350\200\201\347\211\210\346\234\254\345\234\250\346\226\260\347\211\210IE\346\214\211\351\222\256\346\212\245\351\224\231\347\232\204\350\247\243\345\206\263\346\226\271\346\241\210.js" @@ -0,0 +1,7 @@ + //出问题的是editor.js中的这句:if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); + //由于IE的升级变化,导致anonymous()函数名发生变化,但我们在代码里把函数名作为常量字符串使用时,这种变化就不能适应了。 + //当然我们也可以用提取字符的方法把函数名从代码段里分割出来,然后拼凑起代码段来执行,虽然方法没问题,但还不够简洁。 + //其实利用JS的动态特性,我们完全可以在不必知道函数名也不必动态提取函数名的情况下直接正确的执行该函数 + //最终代码会比源代码还节省代码字节,只需将函数名替换成一对括号就可以解决了: +if (element.YUSERONCLICK) eval("(" + element.YUSERONCLICK + ")()"); + // 这样一处理,不但没增加代码,反而减肥了,而且不论IE升级版本后函数名变成什么都无所谓了,只要IE不取消这个匿名功能函数就会一劳永逸。 \ No newline at end of file