解决 window.location.href 下载文件时,一次点击产生两次下载+页面跳转问题
一般我们常用 window.open 打开一个新窗口的方式,来下载文件,但是新的窗口不会关闭,除了明显体验上不好以外,有时还会导致一次点击同时产生两次下载。
const download = (url) => {
window.open(url);
}
解决方案:
const = download = (url) => {
//获得id为downLoadListFrame的frame
var divFrame = window.parent.document.getElementById("downLoadListFrame")
//判断是否存在,如果存在先移除,再重新创建
if (divFrame != null) {
window.parent.document.body.removeChild(divFrame)
}
//重新创建
var iframe = window.parent.document.createElement("iframe");
iframe.setAttribute("id", "downLoadListFrame");
//download_file.id = "downFrame";
window.parent.document.body.appendChild(iframe);
divFrame = window.parent.document.getElementById("downLoadListFrame");
//隐式调用,(注意:window.parent.document 适应对于,farme内部代码,调用frame 外部dom;如果项目未用frame,改写成 document即可)
divFrame.src = url;
divFrame.style.display = "none";
},