检测何时关闭"文件下载"弹出窗口

Rom*_*las 20 javascript internet-explorer download

我有一个网页(由JSF制作),其中一些链接允许用户获取PDF文件.

当用户点击这样的链接时,会显示一个等待弹出窗口(它是一个模态面板)(因为PDF的生成可能很长),并且一旦创建了文件,IE就会显示建议的"文件下载"弹出窗口"打开","保存"和"取消"选项.

当这个弹出窗口关闭时,即当用户保存(或打开)PDF文件时,Javascript是否有办法从我的网页中知道?

为了更精确一点,在显示PDF文件链接的网页中,会显示一个模态弹出窗口("等待弹出窗口"),以使用户等待"文件下载"弹出窗口.问题是当用户保存(或打开)PDF文件时,"文件下载"弹出窗口关闭,但用户然后"返回"到原始网页,同时仍显示等待弹出窗口.

请注意,我的应用程序仅在IE6中运行,因此我不反对IE(6) - 仅解决方案...

对于需要jQuery的解决方案我也没问题;)

编辑: 如果存在一个解决方案来捕获任何在向用户显示"文件下载"弹出窗口时触发的事件(即在用户选择保存,打开或取消之前),那么对我来说也没关系!

Rom*_*las 15

我不得不在另一个项目上处理这类问题.我终于找到了一个智能解决方案,正如另一个Stackoverflow问题所解释的那样.

以下帖子给出了解释:http://gruffcode.com/2010/10/28/detecting-the-file-download-dialog-in-the-browser

我们的想法是"简单地"使用cookie来定义何时下载文件.


Cre*_*esh 10

没有这样的事件.你需要采取不同的方法来解决这个问题.

  1. 将下载链接定位到具有名称(target="myhiddeniframe")的隐藏iframe
  2. 点击下载链接,显示你的加载微调器
  3. onloadiframe 的属性设置为隐藏您的微调器的回调

净效果:生成pdf时"旋转","文件下载"对话框出现时"取消固定"(与"文件下载"对话框关闭时相反).

  • 听起来不错,但在我的情况下,iframe load事件没有被触发,可能是因为只有在内容是HTML时它才触发. (6认同)