一:注意事项
部分win10系统,不自带IE浏览器
IE9及以下,可能不支持断点调试
最好使用IE11,模拟IE9来断点调试
二:如何定位问题?
一般IE的兼容性问题都是,在chrome上正常,但在IE上,到某个步骤后代码异常停止。
有时候看报错信息,就能定位到问题。有时,压根没有报错信息。如果没有报错信息时,如下操作
通过跟chrome页面操作对比,大概定位到是哪块代码异常。通过多打断点,慢慢缩小可能出错的范围。当范围足够小时,一行行代码执行,找到突然跳出的某行代码。
查该行代码的每一个函数,任何一个你觉得很正常的函数或者用法,ie都可能不兼容!
定位到不支持的函数时,换一种处理函数或逻辑,解决问题。
三: 不支持的方法
- Array的indexOf
- For in
- Array的includes方法
四:与其他浏览器差异
1、数组最后的逗号
我习惯于保留对象和数组最后一项后的逗号,但是因为这个喜欢在IE出过问题。
[1,2,]在不同浏览器中有不同自动转换,IE中会转化为[1,2,undefine],chrome自动转为[1,2]。
所以如果使用比如表格组件,配置中表头属性是个数组。如果在IE中会去执行undefined项,进而报错。