当前位置: 移动技术网 > IT编程>开发语言>JavaScript > vue兼容IE8以上解决方案

vue兼容IE8以上解决方案

2020年07月14日  | 移动技术网IT编程  | 我要评论

一、说明背景

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 模式下不...", 

  • 看到这个错,怎么说呢,这个错有时很轻,有时很严重。
  • 先说明下报错的原因是什么,是因为标签属性重复使用。
  • 很轻:如果你能精准的知道你那个控件用了重复属性,可能很快就解决。
  • 很重:页面太多,或者是外包团队写的,或者是别人写的,接手,或重构等等。。。这个时候就很难排查,个人建议写一个脚本,扫描整个项目进行汇总。或者你选择放弃,在 里面监听浏览器版本,进行处理,让用户下载最新的版本。
  • <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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网