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

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

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

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