uni-app 在 ie11 上运行报 window.dispatchEvent 不支持错误,导致程序无法在 ie11 上运行

uni-app 在 ie11 上运行报 window.dispatchEvent 不支持错误,导致程序无法在 ie11 上运行

| 开发环境 | 版本号 | 项目创建方式 |
|----------|--------|--------------|
| Windows  | 10.14.6 | CLI          |

# 操作步骤:
无

# 预期结果:
能支持ie11

# 实际结果:
不支持

![f79d5b1a7c791c138ae1181e364debb5](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20210405/f79d5b1a7c791c138ae1181e364debb5.png)

更多关于uni-app 在 ie11 上运行报 window.dispatchEvent 不支持错误,导致程序无法在 ie11 上运行的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 在 ie11 上运行报 window.dispatchEvent 不支持错误,导致程序无法在 ie11 上运行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 IE11 中,window.dispatchEvent 方法存在兼容性问题,因为 IE11 对标准事件模型的支持不完整。uni-app 生成的代码可能依赖此方法,导致在 IE11 上运行时报错。

解决方案

  1. 添加 Polyfill:在项目入口文件(如 main.js)中引入事件相关的 Polyfill,例如 event-polyfill 或自定义补丁,以填补 IE11 缺失的方法。

    import 'event-polyfill'; // 或使用其他兼容库
    
  2. 检查构建配置:在 vue.config.js 或项目配置中,确保 transpileDependencies 包含可能引发问题的依赖库,强制 Babel 转译。

  3. 降级语法:通过 Babel 配置(如 babel.config.js)设置目标浏览器为 IE11,使代码编译为兼容语法:

    module.exports = {
      presets: [
        ['@vue/app', {
          targets: { ie: '11' }
        }]
      ]
    };
回到顶部