导出文件下载两次的并跳转空白页解决办法原创
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);
推荐阅读