JS异步下载EXCEL

异步下载excel,

* 电脑桌面版浏览器测试了Safari和Chrome支持

* 支持的手机浏览器

    ----Safari(需要延迟删除href属性,不然会没反应,调试发现原因是报中断资源的错)、Chrome、华为自带浏览器、小米自带浏览器

* 经测试手机不支持的
    ----夸克、UC、QQ浏览器,OPPO自带、三星自带、魅族自带

以上仅供参考,相信随着技术的进步会慢慢支持的

上代码↓↓↓

download: function () {
	let param = ...;
	let xhr = new XMLHttpRequest();
	xhr.open('GET', url, true);
	xhr.responseType = 'blob'
	xhr.send(param);
	xhr.onload = function() {
		if (this.status === 200) {
			let content = xhr.getResponseHeader('content-disposition');
			// let blob = new Blob([xhr.response], {type:xhr.getResponseHeader('Content-Type')});
			let blob = xhr.response;
			let oa = document.createElement('a');
			oa.href = URL.createObjectURL(blob);
			oa.download = decodeURI(content).slice(20);
			document.body.appendChild(oa);
			oa.click();
			setTimeout(function () {
				window.URL.revokeObjectURL(oa.href);
				document.body.removeChild(oa);
			}, 3000)
		}else{
			......
		}
	}
}

  

posted @ 2020-07-10 15:22  一个小学僧  阅读(377)  评论(0编辑  收藏  举报