你能用Javascript来检测服务器端创建的文件下载窗口吗?

时间:2010-06-16 16:12:27

标签: asp.net javascript jquery javascript-events

我有一个jQuery插件,我用它在default.aspx asp.net页面上动态创建和呈现表单,然后提交它。它提交的页面是pdf.aspx页面。页面构建PDF然后使用Response.Write将文件(application / pdf)写入浏览器。我也使用相同的方法将XLSX文件呈现给浏览器。它的效果非常好,但是我需要一个回调或一些事件来告诉按钮什么时候停止旋转。这可以防止用户连续单击Excel或PDF按钮。当没有使用javascript创建文件对话框窗口时,是否有人知道检测文件对话框窗口的方法?我也对服务器端的其他回调方法持开放态度。

1 个答案:

答案 0 :(得分:5)

我这样做是为了回应我刚才在T.J.提出的一个问题。克劳德。我上次写这篇文章时找不到响应,因为Stackoverflow“搜索”工具非常蹩脚,所以我可能会在博客文章中输入内容。基本思想是您的客户端代码(Javascript)在提交下载请求时应附加一个额外的参数。该参数应包含一些生成的随机字符串(可能只是当前时间戳足够好)。然后服务器查找该参数,当它使用下载文件准备响应时,它还会设置一个cookie并为其提供随机值。

在提交之后(或之前;它并不重要),Javascript代码应该启动一个间隔计时器,并使用例程来查看document.cookie的值并查看它是否包含该随机字符串。一旦cookie确实包含该字符串,那么您就知道服务器已经发回了它的响应并且已经显示了文件下载对话框。