如何知道IE文件下载提示何时弹出?

时间:2010-06-01 09:22:42

标签: javascript

现在我有一个问题:

我在我的页面上添加了一个div,禁止用户在用户单击DOWNLOAD按钮时单击按钮,链接或字段。因此,当IE文件下载提示弹出或用户点击“保存”,“另存为”或“取消”时,我需要删除此div。

我怎样才能达到这个目标?

IE只考虑了。

3 个答案:

答案 0 :(得分:5)

实际上 是一种可以让浏览器处理文件下载的好猜测的方式。我问了同样的问题,TJ Crowder有个好主意:

What are techniques to get around the IE file download security rules?

我现在实际上正在使用这个想法,它完美无缺。诀窍是让页面发送一个“nonce”参数,其中包含一个随机字符串。然后页面每100毫秒左右开始轮询document.cookie,检查该字符串是否在cookie中。

反过来,服务器将选择的cookie(对于它的调用并不重要)设置为“nonce”参数中表单发送的值。然后它会像往常一样发出文件下载。

当HTTP响应返回浏览器时,将设置cookie。轮询cookie值的Javascript将会看到,然后它将知道正在处理HTTP响应。现在,它当然不知道用户没有在文件下载上点击“取消”。

如果服务器确定原始请求有错误(例如,如果文件下载涉及表单而用户提供了错误输入或错过了字段),那么它将不会设置cookie并且只能响应HTML对于错误(或其他)。

答案 1 :(得分:3)

不,无法从javascript中检测到浏览器文件处理对话框 - 这是设计使然。即使您将自己局限于IE,也是不可能的,其他浏览器无论如何都会以完全不同的方式处理文件下载。

http://groups.google.co.uk/group/comp.lang.javascript/browse_thread/thread/9441cce4f8fdf20b/6f4fcc7796e03f1d

如果你解释为什么你正试图这样做,可能会有一种不同的方法更适合你。

答案 2 :(得分:1)

我认为没有回调;绝对不是在所有浏览器中。

此外,并非每个浏览器都会弹出提示 - 这取决于用户特定的浏览器配置;有些人可能刚刚开始在后台下载。

我建议在一段时间后删除DIV(根据显示下载框通常需要的时间你必须猜测),虽然这不是一个非常干净的解决方法。