浏览器a标签下载txt、json文件自动打开预览的问题
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
背景
由于浏览器的特性.txt .pdf .json
等等文件放在a
标签的href
属性中会被浏览器直接打开,这时可以给a
添加download
属性强制下载,但是当执行 跨域下载 文件时download
属性就会失效。
解决办法
跨域会导致download
属性失效,使用xhr
下载方式。
export default function download(url, fileName) {
const xhr = new XMLHttpRequest()
xhr.open('GET', url, true)
xhr.responseType = 'blob'
xhr.onload = () => {
const url = window.URL.createObjectURL(xhr.response)
createAndRemove(url, fileName)
}
xhr.send()
}
function createAndRemove(url, fileName) {
// 创建隐藏的可下载链接
var eleLink = document.createElement('a');
eleLink.download = fileName;
eleLink.style.display = 'none';
// 下载内容转变成blob地址
eleLink.href = url;
// 触发点击
document.body.appendChild(eleLink);
eleLink.click();
// 然后移除
document.body.removeChild(eleLink);
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
2 个月前
8c391e04
5 个月前
更多推荐
已为社区贡献12条内容
所有评论(0)