BestDI / BestDI.github.io

Mia's Home
https://bestdi.github.io
1 stars 0 forks source link

Funk IE!!! `IE` 兼容性实录 #28

Open BestDI opened 4 years ago

BestDI commented 4 years ago

IE11报错:[vuex] vuex requires a Promise polyfill in this browser的问题解决

发现和vuex有关系,去其官网查看了一下文档,发现关于IE浏览器的Promise的问题:

在vue-cli(webpack4)中的解决方案如下:

  1. 安装babel-polyfill 命令:npm i babel-polyfill -S
  2. 导入babel-polyfill(两种方式)

    • 修改webpack.base.config.js中的入口配置

      entry: {
      app: ["babel-polyfill","./src/main.js"]
      }
    • entry: { 
      app: "./src/main.js",
      "babel-polyfill":"babel-polyfill"
      }
    • 如果不使用上面的方式,那么可以修改main.js的入口文件,注意此代码需要放在main.js的首行代码中。

BestDI commented 4 years ago

🏒 IE11 crypto 报错, 在IE需要使用 msCrypto

BestDI commented 4 years ago

🍨 Js 判断IE浏览器


function myBrowser() {
    const userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    let isOpera = userAgent.indexOf("Opera") > -1;

    //判断是否Opera浏览器
    if (isOpera) {
        return "Opera"
    }

    //判断是否Firefox浏览器
    if (userAgent.indexOf("Firefox") > -1) {
        return "FF";
    }

    if (userAgent.indexOf("Chrome") > -1) {
        return "Chrome";
    }

    //判断是否Safari浏览器
    if (userAgent.indexOf("Safari") > -1) {
        return "Safari";
    }

    //判断是否IE浏览器
    if (userAgent.indexOf("compatible") > -1
        && userAgent.indexOf("MSIE") > -1
        && !isOpera) {
        return "IE";
    }
}

//以下是调用上面的函数
var mb = myBrowser();
if ("IE" == mb) {
    alert("我是 IE");
}
if ("FF" == mb) {
    alert("我是 Firefox");
}
if ("Chrome" == mb) {
    alert("我是 Chrome");
}
if ("Opera" == mb) {
    alert("我是 Opera");
}
if ("Safari" == mb) {
    alert("我是 Safari");
}