【发布时间】:2016-09-19 21:32:48
【问题描述】:
我正在开发一个 PHP 应用程序,它可能需要几秒钟来加载下一页。为了防止用户在下一页加载时点击垃圾邮件(并让他们知道页面正在加载),我实现了一个覆盖页面的页面加载微调器:
// Assume all internal links start with "http://www.example.com"
$('a[href*="http://www.example.com"]').on("click", function () {
var href = $(this).attr("href");
if (!href || href[0] === "#") {
location.hash = href;// set that hash
return;
} else {
location = href;
$(".loading-spinner").fadeIn(100, function () {
setTimeout(function(){ $(".loading-spinner").fadeOut(200); }, 10000); // 10 second loading maximum
});
}
return false;
});
如果链接开始下载文件,我想在检测到下载后立即淡出.loading-spinner。
有什么方法可以检测链接是否触发了下载与使用 javascript/jQuery 加载页面,还是我需要专门识别所有下载链接(使用特殊类等)?
【问题讨论】:
-
你在用
download Attribute吗? -
暂时没有,但我可能会这样做,而不是使用“下载”类等。一般来说,我不知道内容类型是什么。
-
坦率地说,Preveen 已经提供了下降的答案,但如果你想处理
download属性,事情会更容易操作.. -
我完全同意,不幸的是,我与一个团队合作,我可以保证不会想回去并将
download属性添加到所有下载链接。
标签: javascript php jquery download cross-browser