通过隐藏的iframe下载文件-如何判断下载是否完成/失败/中止
Downloading file via hidden iframe - how to tell if download completes/fails/is aborted?
当用户点击我的下载链接时,从点击到用户浏览器中弹出下载对话框之间会有一个轻微的停顿,这是因为我的服务器正在创建一个由一堆文件组成的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();
});
相关文章:
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- 是否可以避免使用SoundManager2和SoundCloud JavaScript SDK将歌曲下载到所提供的位置
- 是否有一个 API 来控制火狐附加组件 SDK 中的下载
- 是否可以触发文件下载到用户的浏览器
- 使用chrome.downloads.download,是否可以使文件不弹出下载栏
- CollectionFS中是否存在用于文件下载的事件侦听器/回调
- 下载被 Chrome 阻止的 xml 和 svg 文件的 zip 存档(无论是否为空)
- AngularJS检查下载的json是否在工作副本之间有差异
- 是否可以在客户端使用 JavaScript 获取下载完成事件
- 是否有任何事件/方式我们可以知道文件何时完成下载
- 我是否错误地使用了requireJS,或者我下载的库存在严重错误
- 正在运行的脚本标记是否会阻止其他脚本标记的下载
- 是否可以获取动态加载的javascript文件的下载进度
- 浏览器是否缓存下载的javascript
- 是否有一个可下载的 eclipse 包,我可以将其用于 Java、c++ 和 JS
- 如何检测文件的下载是否已完成
- GWT中是否有关于将要下载哪个片段的通知
- 通过隐藏的iframe下载文件-如何判断下载是否完成/失败/中止
- Ajax -知道文件下载是否正确地从服务器发送
- 在JavaScript中检测选项卡/下载是否已完成加载