回顾
一、实现下载
exportLeftMarketing(this.searchKeywords).then(res => {
let blob = new Blob([res], {type: 'application/vnd.ms-excel'})
let num = ''
var d = new Date()
var year = d.getFullYear()
var month = d.getMonth()
var date = d.getDate()
var hours = d.getHours()
var minutes = d.getMinutes()
var seconds = d.getSeconds()
num += year + "" + month + "" + date + "" + hours + "" + minutes + "" + seconds
const link = document.createElement('a')
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.setAttribute('download', 'info' + num + '.xlsx')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
})
二、Chrome与IE显示对比
1.0 Chrome显示正常
2.0 IE无任何反应
三、兼容IE
exportLeftMarketing(this.searchKeywords).then(res => {
let blob = new Blob([res], {type: 'application/vnd.ms-excel'})
let num = ''
var d = new Date()
var year = d.getFullYear()
var month = d.getMonth()
var date = d.getDate()
var hours = d.getHours()
var minutes = d.getMinutes()
var seconds = d.getSeconds()
num += year + "" + month + "" + date + "" + hours + "" + minutes + "" + seconds
// IE
if (navigator.msSaveBlob) {
window.navigator.msSaveBlob(blob, 'info' + num + '.xlsx')
return
}
// 或
if('msSaveOrOpenBlob' in navigator){
window.navigator.msSaveOrOpenBlob(blob, 'info' + num + '.xlsx');
return
}
const link = document.createElement('a')
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.setAttribute('download', 'info' + num + '.xlsx')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
})
四、重新渲染(Navigator.msSaveBlob - Web APIs | MDN)