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

Downloading file via hidden iframe - how to tell if download completes/fails/is aborted?

本文关键字:下载 是否 判断 中止 失败 何判断 隐藏 iframe 文件      更新时间:2023-09-26

当用户点击我的下载链接时,从点击到用户浏览器中弹出下载对话框之间会有一个轻微的停顿,这是因为我的服务器正在创建一个由一堆文件组成的zip,这可能需要很短的时间。

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

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

有什么办法吗?

返回一个基于"ok"或"error"字符串的iframed页面的服务器端的字符串。

检查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();
                   });