欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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 vue兼容IE8以上解决方案
  • 如上图提示app.js 12104行报错。点击进入查看。
  • vue兼容IE8以上解决方案
  • 查看之后,很快就能明白错误信息是什么,很明显就是 resize-detector 引起的不兼容问题。一般项目中引入了echars 都会有这个问题。
  • 不管是报什么错,你明白了如何找到兼容性不行的原因,我觉得什么问题都能得到一个解决方案。

注意:凡是遇到以上问题,请在vue.config.js中加入,以下是以resize-detector为例

transpileDependencies: [
        "resize-detector",
    ],

3、报错 strict 模式下不...", 

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

    vue兼容IE8以上解决方案

还是不能解决,请联系博主!

本文地址:https://blog.csdn.net/xljx_1/article/details/107283938