导出文件下载两次的并跳转空白页解决办法原创
金蝶云社区-still4ever
still4ever
1人赞赏了该文章 817次浏览 未经作者许可,禁止转载编辑于2023年04月20日 10:22:07

问题描述:导出文件出现多次下载,并且页面显示空白

原因分析:点击按钮进行下载时,可能会存在多次点击的情况,会出现多次下载,如果使用的是window.location.href这种下载方式或者window.open()或者使用a标签时,会发生链接覆盖,产生页面跳转。从而出现页面出现空白页的情况。

适用版本:8.2SP2版本及以上(使用window.location.href或者window.open()或者a标签都可能会出现)

处理方式:解决此问题使用iframe进行下载



//获得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");
window.parent.document.body.appendChild(iframe);
divFrame = window.parent.document.getElementById("downLoadListFrame");
//隐式调用(注意:window.parent.document 适应对于,farme内部代码,调用frame 外部dom;如果项目未用frame,改写成 document即可)
divFrame.src = src;
divFrame.style.display = "none";

//如果会重复下载文件,具体要看重复请求间隔时间
setTimeout(function() {
    if(divFrame != null) {
        window.parent.document.body.removeChild(divFrame);
    }
}, 1000);



赞 1