起因:项目已经因为要兼容IE8用JQ(之前vue)重写了,但是依然在ie8下报错,修复过程中发现,异常的艰难
1:webpack使用es3ify-loader处理js,因为:a.default会报错
原理:IE8的js里关键字:default,class,就是不能用obj+ . 访问,必须用obj['default']
2: webpack打包会在es6模块的开头写object.defineproprety,避免使用es6module。。。。
原理:这个跟浏览器内核有关系,其实就是IE8没有实现所有的ES5标准,defineproprety就是其中一个
3:forEach兼容polyFill
原理:这个跟浏览器内核有关系,没为什么,就是IE8没有实现这个方法
4:nav等html5标签不适用
为什么IE8不支持全部html5标签(header还是支持了的)? 没为什么,就是不支持
5:如果要操作dom,尤其是便利子nodeList ,chrome51以下都需要:
!NodeList.prototype.forEach && (NodeList.prototype.forEach = Array.prototype.forEach)