vue兼容IE8以上解决方案
程序员文章站
2022-03-13 17:51:38
一、说明背景vue主要采用了ES6 Promise,我们知道的,在 JavaScript 中,所有代码都是单线程的,也就是同步执行的。而 Promise 就为异步编程提供了一种解决方案。二、解决方案1、采用 babel-polyfill 进行转换语法。2、安装babel-polyfillnpm install -S babel-polyfill3、main.js 引入babel-polyfillimport 'babel-polyfill'注意:babel-polyfi....
一、说明背景
vue主要采用了ES6 Promise,我们知道的,在 JavaScript 中,所有代码都是单线程的,也就是同步执行的。而 Promise 就为异步编程提供了一种解决方案。
二、解决方案
1、采用 babel-polyfill 进行转换语法。
2、安装babel-polyfill
npm install -S babel-polyfill
3、main.js 引入babel-polyfill
import 'babel-polyfill'
注意:babel-polyfill 默认会把node_modules 进行过滤出来(这就是很多引入了babel-polyfill还是不能解决兼容性问题的根本原因)
三、还未解决看下面的操作
1、当你的语法比较规则的时候,可能按照上面的就可以兼容IE8以上了。
2、报错 SCRIPT1006: 缺少 ')'
- 打开IE F12
- 如上图提示app.js 12104行报错。点击进入查看。
- 查看之后,很快就能明白错误信息是什么,很明显就是 resize-detector 引起的不兼容问题。一般项目中引入了echars 都会有这个问题。
- 不管是报什么错,你明白了如何找到兼容性不行的原因,我觉得什么问题都能得到一个解决方案。
注意:凡是遇到以上问题,请在vue.config.js中加入,以下是以resize-detector为例
transpileDependencies: [
"resize-detector",
],
3、报错 strict 模式下不...",
- 看到这个错,怎么说呢,这个错有时很轻,有时很严重。
- 先说明下报错的原因是什么,是因为标签属性重复使用。
- 很轻:如果你能精准的知道你那个控件用了重复属性,可能很快就解决。
- 很重:页面太多,或者是外包团队写的,或者是别人写的,接手,或重构等等。。。这个时候就很难排查,个人建议写一个脚本,扫描整个项目进行汇总。或者你选择放弃,在index.html 里面监听浏览器版本,进行处理,让用户下载最新的版本。
-
<script> let ua = navigator.userAgent.toLocaleLowerCase(); let browserType = null; if (ua.match(/msie/) != null || ua.match(/trident/) != null) { browserType = 'IE'; window.location.href='/runMsg.html'; } else if (ua.match(/firefox/) != null) { browserType = 'firefox'; } else if (ua.match(/ucbrowser/) != null) { browserType = 'UC'; window.location.href='/runMsg.html'; } else if (ua.match(/metasr/) != null) { browserType = 'sougou'; window.location.href='/runMsg.html'; } else if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) { browserType = 'QQ'; window.location.href='/runMsg.html'; } else if (ua.match(/maxthon/) != null) { browserType = 'maxthon'; window.location.href='/runMsg.html'; } else if (ua.match(/chrome/) != null) { var is360 = _mime('type', 'application/vnd.chromium.remoting-viewer') if (is360) { browserType = '360'; window.location.href='/runMsg.html'; } else { browserType = 'chrome'; } } else if (ua.match(/safari/) != null) { browserType = 'Safari' } else { browserType = 'others' } </script>
还是不能解决,请联系博主!
本文地址:https://blog.csdn.net/xljx_1/article/details/107283938