我正在提交一个带有target =“_ blank”的HTML表单,响应是来自服务器的生成的zip文件。在chrome中,我导航到空白的新窗口,文件以正面情况下载(从服务器端接收zip文件)但是对于负面情况,如果由于服务器端的异常或最大限制增加而不是我们是设置一个cookie即'downloadAsset '。在这种情况下,选项卡不会在chrome中关闭。在IE 10中,新窗口(或选项卡)打开,我导航到空白的新窗口,当显示提示(保存,打开或取消)时,它在原始选项卡上(现在从视图中隐藏)并且新窗口不会关闭。
HTML代码:
<form id="download-form" target="_blank" method="POST" action="/bin/assetsDownload">
<input id="download-input" type="hidden" name="paths" >
</form> `
Javascript代码:
var form1 = angular.element(document.querySelector('#download-form'));
var f2 = angular.element(document.querySelector('#download-input'));
f2.context.setAttribute('value',dPaths);
form1.submit();
// window.close();
var count=0;
var cookieFunction=function(){
count++;
var downloadAssetCookie = $cookies.get("downloadAsset");
if(count==100 || downloadAssetCookie){
var expireTime=new Date();
document.cookie = 'downloadAsset=; Path=/; Expires='+expireTime;
clearInterval(stopInterval);
if(downloadAssetCookie=="4071"){
window.close(); // **here window to be close**
}
}
}
var stopInterval=setInterval(cookieFunction, 1000);
setTimeout(function(){
clearInterval(stopInterval);
}, 15000);
dpaths中的样本数据=“/ ecms / dam / Assets / video / Mobile-BG_750x1110.png,/ ecms / dam / Assets / video / Desktop-BG_750x1110.png”
我也尝试过使用fileSaver.js和blob,但在这种情况下,无效的zip会被下载。 那么有没有办法在Chrome的负面情况下关闭窗口以及IE中的所有情况