0%

兼容IE11问题汇总

SCRIPT5018: 错误的数量词

正则问题

问题:IE 11 不支持(?<= ) (?<! ) 正则

解决方案: 1. 检索此类正则并手动修复

资料:

https://docs.microsoft.com/zh-cn/scripting/javascript/misc/unexpected-quantifier-javascript?f1url=%3FappId%3DDev12IDEF1%26l%3DZH-CN%26k%3Dk(VS.WebClient.Help.SCRIPT5018)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

解决方案: 2. 如果是子依赖项报错可在外层项目再走一遍webpack来纠正。

资料:

如果是基于vue-cli的项目在vue.config.js中构建配置如下:

1
2
3
module.exports = {
transpileDependencies:['your lib name']
}

原理为:将以上node_modules内的包再走一次webpack编译,如果项目本身webpack配置是支持IE11的这些包也将会支持IE11

非基于vue-cli的项目请根据原理酌情修改webpack配置。

SCRIPT1006: 缺少 ‘)’

参数默认值问题

问题:IE 不支持 下图中的参数默认值方式

1
2
function(name,age=10){
}

解决方案:在最终端(最外层APP)引入babel-polyfill 基于vue-cli的项目vue.config.js示例配置如下:

1
2
3
4
5
6
module.exports = {
configureWebpack: {
entry: ["babel-polyfill", './src/main.js']
...
}
};

资料:

http://blog.jvaeyhcd.wang/posts/82d2bd95f1e3557d.html

https://segmentfault.com/a/1190000019188184

ReferenceError: “Proxy”未定义”

polyfill问题

问题:IE 无 Proxy 对象

解决方案: 增加proxy-polyfill

1
2
3
4
yarn add proxy-polyfill

import 'proxy-polyfill'