关于既定技术栈的IE8浏览器兼容

Posted 技术员成长史

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于既定技术栈的IE8浏览器兼容相关的知识,希望对你有一定的参考价值。

IE8对当前我们使用的前端技术栈是不友好的,首先注意IE8不兼容CSS3的样式和ES6的语法,在要兼容IE8的项目开发时就选用比较原始的技术栈,如:html+bootstrap3+jquery1.9(或是1.11)以及一些现成的jquery组件来构建前端。目前,我觉得有两种比较好用的而且也都尝试过的方案。

两种方案的相同之处是都使用模块化开发的方式,我们使用的打包工具是webpack,我觉得使用webpack最好使用近期版本比较新的,还有为兼容IE8关闭webpack的热更新(*hot和inline均定义为false),为部署方便webpack可以写多份配置,针对output的publicPath是为了动态适应部署环境的资源位置,一般设置为‘/’;

方案一:

es5-shim@4.5.10+es3ify-loader@0.2.0+babel配置

es5-shim完美模拟了所有 ES5 中可以被完美模拟的方法;es5-sham尽力模拟了所有 ES5 中可以不可以被完美模拟的方法(尽量不要使用);

es3ify-loader将es5,es6的语法转化为es3的,如:defineProperty,或是一些不支持标识符的处理,如: ‘default’;

babel的作用同样是把es6转化为es5语法,在现有环境执行,需要配置.babelrc文件;

方案二:

babel-polyfill + babel + es3ify-loader@0.2.0

babel-polyfill是为了弥补babel不转换新的api的情况,实现新的对象方法,可以进行部分引用;

最后正确配置webpack的uglify,使用uglifyjs-webpack-plugin@1.1.1,合理配置,对于webpack4以上的版本,想要手动配置,请查看文档https://webpack.js.org/concepts/mode/

以上是关于关于既定技术栈的IE8浏览器兼容的主要内容,如果未能解决你的问题,请参考以下文章

jqgrid不兼容IE8浏览器,该怎么处理

vue项目兼容ie浏览器

d3js在ie8兼容模式怎么设置

ie8兼容性

关于input标签和placeholder在IE8,9下的兼容问题

使用vue技术应当使用的技术和兼容性选择