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

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

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

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

我已经尝试添加一些在ready()上激活的代码,但这似乎只是直接运行(大概是因为页面已经加载,即使文件不是),所以加载消息永远不会显示。

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

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

如果你不反对使用flash …

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

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

我不认为跟踪进度也可以用服务器端语言完成。