在dojo中处理IE和Firefox的常见的兼容性问题
fromhttp://liwenbing.cn/2008/05/07/ie-ff-comapatibility-in-dojo/
让javascript在不同的浏览器之间兼容就是一件pains-taking的事情,虽然dojo已经封装了不同浏览器之间的 大部分差异,在实际使用dojo进行开发的时候,仍然偶尔会遇到此类问题。
近一段时间又在做这个工作,也将这些tips记录如下。这些内容也是在组里人在处理这些问题不断总结的出来。
- Object的定义不严格(可以说最容易出错的地方):
实例:原因:
这个会在IE中出错,但是在firefox中work。原因就是在IE中Object后面不允许多一个逗号,其实ECMAScript上面的确定义这个是不合法的,只能说IE在这种地方还真是遵循标准。在新的JavaScript 5中,这个将会是合法。
解决办法:
去掉逗号,如上例{a:”ha”,b:”he”}。在Eclipse中可以用如下正则表达式来需找这种不合法的使用:,\s*} - javascript 的Array的定义不一样
实例:[123].length === 3 // FF 4 // IE
错误原因及修正:
这个麻烦的是IE并不会报语法错误,所以更要小心。注意在array的定义中请去掉逗号。在JavaScript 5中,IE将更正这个bug。
实例:
self = this; self.a {;