download (config) {
const a = document.createElement('a') // 创建一个a标签
a.href = config.src // a标签的src属性赋值
if (config.target) {
a.target = config.target
}
a.download = config.fileName // a标签的download属性赋值
document.body.appendChild(a) // 添加a标签到body下
a.click() // 触发a标签点击事件
document.body.removeChild(a) // 完成后删除a标签
},
a标签在没有增加download属性的时候一般是直接跳转到一个页面,如果增加了download属性会导致跳转页面转变为强制下载相应的URL
注意:download 属性会具有同源问题(同源:如果两个页面的协议、端口(如果有指定)和域名都相同,则认为同源)
- download属性在Edge42浏览器中可以强制下载,并且不用考虑同源问题;
- download属性在Chrome71浏览器中可以强制下载,但是必须考虑同源问题;
- download属性在IE11和360-8浏览器中不可以实现强制下载;