Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过隐藏iframe下载文件-如何判断下载是否完成/失败/中止?_Javascript_Jquery_Iframe_Download - Fatal编程技术网

Javascript 通过隐藏iframe下载文件-如何判断下载是否完成/失败/中止?

Javascript 通过隐藏iframe下载文件-如何判断下载是否完成/失败/中止?,javascript,jquery,iframe,download,Javascript,Jquery,Iframe,Download,当用户单击“我的下载”链接时,在单击和用户浏览器中弹出“下载”对话框之间会有一个轻微的停顿,这是因为我的服务器正在创建一个包含大量文件的zip文件,这可能需要很短的时间 因此,我想放置一个加载微调器,并在此期间禁用链接,以防止用户再次敲打下载链接。唯一的问题是我需要重新启用链接并隐藏微调器,但我不知道如何知道何时会出现下载弹出窗口 Im使用隐藏的iframe触发下载,并且在显示弹出窗口之前,即设置iframes src属性或将iframes添加到dom时,似乎会触发onload/onsubmit

当用户单击“我的下载”链接时,在单击和用户浏览器中弹出“下载”对话框之间会有一个轻微的停顿,这是因为我的服务器正在创建一个包含大量文件的zip文件,这可能需要很短的时间

因此,我想放置一个加载微调器,并在此期间禁用链接,以防止用户再次敲打下载链接。唯一的问题是我需要重新启用链接并隐藏微调器,但我不知道如何知道何时会出现下载弹出窗口

Im使用隐藏的iframe触发下载,并且在显示弹出窗口之前,即设置iframes src属性或将iframes添加到dom时,似乎会触发onload/onsubmit事件


有什么办法吗?

根据iframed页面的服务器端返回一个“ok”或“error”字符串

检查iFrame是否有更改:

$("iframe#uploadProcessor").load(function(){
       if($(this).text().indexOf("Error") > -1){
          console.log($(this).html());
       }else{
          var wrapper = $("div#main div#closets.tabContent div#UploadFormWrapper");
           if(wrapper.hasClass('Active')){
                  wrapper.animate({"height":"0px"}, {"queue": false, "duration": 400}).fadeOut(375, function(){
                           wrapper.removeClass('Active');
                          });
                    }
                           require(["AJAX"], function(AJAX){
                               AJAX.ajaxUpdateCloset($("form#UploadForm select#OutfitCloset")[0].value);
                           });
                       }
                       $("div#main div#closets.tabContent form#UploadForm")[0].reset();
                   });