vue + js 封装下载文件的方法(对不同浏览器作兼容)

import {
	ElMessage
} from 'element-plus'

export default function downloadFile(res, fileName) {
	const blob = res;

	const downloadElement = document.createElement('a');
	const href = window.URL.createObjectURL(blob);
	downloadElement.href = href;
	const userAgent = navigator.userAgent;
	const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
	const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;
	const isEdge = userAgent.indexOf('Edge') > -1;
	if (isIE || isIE11 || isEdge) {
		navigator.msSaveBlob(blob, fileName);
	} else {
		downloadElement.download = fileName;
		document.body.appendChild(downloadElement);
		downloadElement.click();
		document.body.removeChild(downloadElement);
		window.URL.revokeObjectURL(href);
	}
}

element-plus在这里主要使用ElMessage对信息进行提示,可以用其他方法或组件库代替。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值