下载文件后如何执行一些javascript?

时间:2013-02-19 09:33:20

标签: javascript jquery html loading pageload

我有一个页面,其中包含指向文件的链接。单击链接后,我使用下面的代码显示加载消息:

$('#TerritoriesToExcelLink').click(function() {
    $('#TerritoriesToExcelLoading').show();
    window.location.href = $(this).attr('href');
});

我想在下载文件后隐藏消息,并在浏览器中弹出保存对话框。

我已经尝试添加一些在ready()上触发的代码,但这似乎只是直接运行(可能是因为即使文件没有加载页面也是如此),因此加载消息永远不会显示。

如何在文件完全下载后隐藏加载消息?

3 个答案:

答案 0 :(得分:3)

让您的服务器通过HTTP标头中的下载,从客户端代码发送您指定的随机cookie。在您的Javascript中进行轮询以检查是否存在cookie。这应该告诉您浏览器何时有您的文件。

答案 1 :(得分:2)

如果您不反对使用闪光灯...

您可以在页面上创建一个不可见的Flash对象,然后当您单击下载链接时,您可以触发flash下载文件,然后处理Flash下载完成事件并使用ExternalInterface API在javascript中引发事件。

答案 2 :(得分:1)

这不可能与前端javascript有关,它无法检索下载进度,也没有任何与下载相关的事件。

我认为无法使用服务器端语言跟踪进度。