vue-cli3.0创建项目IE兼容处理

news/2024/10/18 23:26:45/

一、白屏处理

IE白屏,基本是JS代码报错,包括app.js报错或者chunk包报错,需要分以下几个步骤解决:

1. 安装sockjs-client包,npm i sockjs-client -D。

2. 安装babel-polyfill包,npm i babel-polyfill -D,并在main.js中引入(在第一行代码引入),import 'babel-polyfill';

3. 在vue.config.js中增加配置:

transpileDependencies中增加引起编译报错的依赖包,例如:

transpileDependencies: [/xxxx1/, /xxxx2/]

chainWebpack中增加配置:

config.entry.app = ['babel-polyfill', './src/main.js'];

4. 最重要的一步,也是网上很多人增加各种配置后依然没有生效的原因,需要修改.browserslistrc文件

> 1%
last 2 versions
not dead
IE 11 //增加需要兼容的IE版本

5.如代码中使用到了promise.allSettled方法,可能会引起兼容问题,需要将此方法重写:

function PromiseAllSettled(promises = [], onlyResult) {return Promise.all(promises.map(onlyResult? (item) => (item instanceof Promise ? item.catch((e) => e) : item): (item) =>item instanceof Promise? item.then((value) => ({ status: 'fulfilled', value })).catch((reason) => ({ status: 'rejected', reason })): { status: 'fulfilled', value: item }));
}// Polyfill
Promise.allSettled || (Promise.allSettled = PromiseAllSettled);

6. 如果经过以上步骤,仍然没解决白屏问题,可能是vue-cli版本和本文用到的版本不一致,建议把网上其他人使用的解决办法都试一遍,总会成功的。。。。

二、其它兼容处理

1. window.scroll写法问题

在IE11中,window.scroll({top: 100,behavior: 'smooth'})这种写法不生效,但是window.scroll(0, 100)这种写法可以起作用,只是滚动效果没有前面带参数的写法那么平滑。

2. 文件下载问题

一般的文件下载方式是把后端的文件流转换成blob格式,然后再通过前端代码创建a标签点击下载,如下例:

createDoc(blob, name) {const elink = document.createElement('a');elink.download = name;elink.style.display = 'none';elink.href = URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();URL.revokeObjectURL(elink.href); // 释放URL 对象document.body.removeChild(elink);
}

但在IE11下,创建的a标签中的href链接地址和在其他浏览器中的href地址不一样,缺少了服务器地址,因此导致无法下载。因此只能使用微软自创的下载文件的写法:

createDoc(blob, name) {if('msSaveOrOpenBlob' in navigator){// Microsoft Edge and Microsoft Internet Explorer 10-11window.navigator.msSaveOrOpenBlob(blob, name);}else{const elink = document.createElement('a');elink.download = name;elink.style.display = 'none';elink.href = URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();URL.revokeObjectURL(elink.href); // 释放URL 对象document.body.removeChild(elink);}}

3.


http://www.ppmy.cn/news/123229.html

相关文章

一只电压力锅

一只电压力锅 九阳电压力锅,服役五年有余。 一天早晨,准备用它熬粥,指示灯不亮,按按钮不反应。 换根电源线试试,还是不行。 看来是挂了,外部零件正常,密封圈刚换过,这样让它退役…

git工作流实践

常见分支命名 远程仓库的分支:主干分支master, 开发分支dev,发布分支release 个人开发分支:特性分支feature, 缺陷修改分支bugfix, 热更新分支 hotfix 一般工作流如下 创建个人本地开发分支: git checkout -b feat…

不锈钢和铝合金电饭锅哪个好

不锈钢电饭锅和铝合金电饭锅各有优缺点,你可以根据自己的喜好选择。 不锈钢电饭锅优点是: 不锈钢材质耐用,可以长期使用。不锈钢易于清洁,操作简单。不锈钢电饭锅一般比较轻,易于携带。 不锈钢电饭锅缺点是&#xff1a…

高压锅怎么使用

锅盖很重要 绿色按钮是限压阀, 红色阀门是止开阀,红色阀门升起表示国内气压高,这时候不能打开高压锅,降下去的时候才可以打开。 加水10min后,止压伐升起,过会限压阀开始转动。 关掉燃气后,限…

计算机专业买哪一款华硕电脑好,华硕电脑哪款好

华硕电脑哪款好 华硕笔记本电脑覆盖高端和中端两个消费群体,因此价格也是有高有低。那么,华硕电脑哪款比较好的呢?下面jy135小编来告诉大家吧! 华硕电脑哪款好 1.华硕FX50JK4200 此款笔记本是于2014年上架的一款游戏影音本,外观炫丽&#xf…

电压力锅中的计算机控制系统,电压力锅的(电脑板)工作原理

(计算机板)电压力锅的工作原理金玉县职业技术学校罗玉刚的教学目标: 1.掌握电压力锅的常见故障现象2.掌握电压力锅的教学方法. 区分计算机板1.电源板当前漂亮的电压力锅中使用的电源板主要有三种,分别是RC降压电源,线性变压器电源(最多)和开关电源. 电源…

家用空调什么牌子好又省电质量又好

格力空调:格力空调是做空调出身的,技术成熟,质量相对来说比较稳定,售后服务也比较好。 什么样的空调又省电质量又好?懂空调的人这样选! https://jiadian.jd.com 海尔空调:可能你还不知道,中国第一台无氟变…

哪款无线耳机音质好又便宜?性价比高音质好的蓝牙耳机推荐

无线蓝牙耳机发展至今,在各种性能的表现上越来越稳定、先进。人们在选择蓝牙耳机时可以根据自身需求来选择最适合的那款,而性价比和音质也成为了大多数人选择的关键要素之一。那么,哪款无线耳机音质好又便宜?下面,我来…