前端通用下载文件方法(兼容IE)
生活随笔
收集整理的這篇文章主要介紹了
前端通用下载文件方法(兼容IE)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前在網上看到一個博主寫的前端通用的下載文件的方法,個人覺得很實用,所以mark一下,方便以后查閱
源文地址(源文還有上傳/下載excel文件方法)
因為項目要求要兼容IE瀏覽器,所以完善了一下之前博主的方法
IE 瀏覽器:使用微軟自帶的msSaveBlob 方法,a標簽的download屬性不支持IE
谷歌瀏覽器(只測試過谷歌):創建a標簽 ,添加download屬性,模擬鼠標點擊事件
//這里res.data是返回的blob對象
var blob = new Blob([res.data.fileData], {type: 'application/json;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document這里表示doc類型
var href = window.URL.createObjectURL(blob); //創建下載的鏈接
if (window.navigator.msSaveBlob) {
try {
window.navigator.msSaveBlob(blob, 'model.json')
} catch (e) {
console.log(e);
}
} else {
// 谷歌瀏覽器 創建a標簽 添加download屬性下載
var downloadElement = document.createElement('a');
downloadElement.href = href;
downloadElement.target = '_blank';
downloadElement.download = 'model.json'; //下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //點擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
window.URL.revokeObjectURL(href); //釋放掉blob對象
}
總結
以上是生活随笔為你收集整理的前端通用下载文件方法(兼容IE)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员高效率工作工具推荐(必备工具)
- 下一篇: 原生JS实现表单序列化serialize