产生白屏问题的原因是因为点击下载按钮的时候实际上因为某些原因产生了2次点击,如果使用的是 window.location.href 这种下载方式或者a标签的方式,会发生链接覆盖,产生页面跳转。如果想要解决这个问题可以采用iframe进行下载,不同的iframe之间是互补影响的。
代码如下:
let divFrame = window.parent.document.getElementById("dIframe")
if (divFrame != null) {
window.parent.document.body.removeChild(divFrame)
}
//重新创建
let iframe = window.parent.document.createElement("iframe");
iframe.setAttribute("id", "dIframe");
window.parent.document.body.appendChild(iframe);
divFrame = window.parent.document.getElementById("dIframe");
divFrame.src = url; // 下载链接
divFrame.style.display = "none";