vue浏览器兼容性问题ie9 ie10 edge

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue浏览器兼容性问题ie9 ie10 edge相关的知识,希望对你有一定的参考价值。

参考技术A 首先要说的是:vue 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能模拟的 ECMAScript 5 特性,比如Object.defineProperty()此方法就会报错,如下图:

所以,用vue尽量去做那些不需要兼容ie8及其以下版本的浏览器的项目。当然了,也许你有其它方法去兼容ie8,费时费力?自己权衡吧。下边要说的是vue在兼容ie9 ---到 edge这几个版本浏览器上的问题。

报错:ReferenceError: “Promise”未定义,原因是:Promise是es6的新语法,ie9和一些低版本的高级浏览器对es6新语法并不支持。
解决办法:npm install --save-dev babel-polyfill
babel-polyfill正确安装后,main.js里引用:import "babel-polyfill";

这个情况是用指令修改页面标题的错误,如下

ie浏览器提示属性找不到,具体的情况,总之如果要修改页面标题,用别人说的一个方法吧,如下

修改标题就ok了,在ie里也不会报错。

vue 项目在ie浏览器的兼容问题

参考技术A

一、关于babel-polyfill

1、说明:This will emulate a full ES2015+ environment and is intended to be used in an application rather than a library/tool. This polyfill is automatically loaded when using babel-node.(模拟ES2015以上的环境,主要用于对ES6新语法不支持的浏览器);

2、安装: npm install --save babel-polyfill;

3、配置: module.exports = entry: ["babel-polyfill", "./src/main.js"] ;

4、main.js中配置: import \'babel-polyfill\' //放在最顶部,确保全面加载。

二、关于es6-promise

1、说明:若在项目中使用了ES6 promise对象,它在Chrome、Safari浏览器下可以正常运行,但在360兼容模式、IE内核中不支持;

2、安装: npm install es6-promise;

3、配置:在main.js中加入 require(\'es6-promise\').polyfill() ,用于在node或浏览器中支持ES6 与CommonJS。

三、步骤详细图
1、index引入这句话或者这三句话

2、执行 npm install --save babel-polyfill;
执行完上面语句package.json里面就有了这个依赖(检查2部是否执行完成的一个结果)

3、最上面引入,确保加载进去。

4、修改entery里面的内容改成下图那样

四、问题如图:
当把这些攻略都做了一遍后,发现打包完的360的急速模式可以了(本地运行还是不可以),但是!!!ie浏览器,360兼容模式,不管打包还是没打包,都不能显示,完全没有加载进去数据,如下图

并且还报错以下未定的错

(1)、
查询后发现,是因为IE没有这个方法,不支持sessionStorage,解决的方法是:IE本地调试用cookie,或者用webstrom打开项目,但我确实用的webstorm打开的项目,还是不可以,后来找到解决方法, 要把es6转es5

然后, npm run dev ,居然可以了适配了。

以上是关于vue浏览器兼容性问题ie9 ie10 edge的主要内容,如果未能解决你的问题,请参考以下文章

解决 Vue 浏览器兼容 edge safari ie 问题

IE9和IE9兼容性查看浏览器模式的区别

vue项目,ES6,IE下语法错误的情况解决办法,兼容IE9+

ie6 ie7 ie8 ie9兼容问题终极解决方案

bootstrap4支持IE9+浏览器吗

对 X-UA-Compatible 标头使用“Edge”或“IE9”?