2010-06-01 53 views
1

现在我有一个问题如下:如何知道IE文件下载提示何时弹出?

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

我该如何达到这个目标?

IE只考虑请。

回答

1

我不认为有一个回调,绝对不是在所有浏览器中。此外,并非所有浏览器都会弹出提示 - 这取决于用户特定的浏览器配置;有些可能只是在后台开始下载。

我建议在一段时间后(根据通常显示下载框所需的时间猜测)去除DIV,尽管这不是一个非常干净的解决方法。

5

其中一种方式,你可以做一个好猜浏览器正在处理文件下载。我问这个同样的问题,TJ克劳德有一个伟大的想法:

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的错误(或其他)。

+0

有趣的想法 – 2010-06-01 13:38:20

+0

好主意!我会做的。 – 2010-06-02 01:11:26

+0

@ pat.inside然后标记答案正确的大声笑! – Sphvn 2010-06-04 05:02:55

相关问题