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

Javascript 如何知道IE文件下载提示何时弹出?,javascript,Javascript,现在我有一个问题如下: 我在页面上添加了一个div,禁止用户在单击下载按钮时单击按钮、链接或字段。因此,当IE文件下载提示弹出时,或者当用户单击“保存”、“另存为”或“取消”时,我需要删除这个div 我怎样才能到达这里 请考虑。我认为这件事没有回电;当然不是在所有浏览器中 此外,并不是每个浏览器都会弹出提示,这取决于用户特定的浏览器配置;有些可能只是在后台开始下载 我建议在一段时间后删除DIV(这取决于显示下载框通常需要的时间),尽管这不是一个非常干净的解决方法。我认为没有回调;当然不是在所有浏

现在我有一个问题如下:

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

我怎样才能到达这里


请考虑。

我认为这件事没有回电;当然不是在所有浏览器中

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


我建议在一段时间后删除DIV(这取决于显示下载框通常需要的时间),尽管这不是一个非常干净的解决方法。

我认为没有回调;当然不是在所有浏览器中

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


我建议在一段时间后删除DIV(这取决于显示下载框通常需要的时间),尽管这不是一个非常干净的解决方法。

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


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

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


如果您解释了为什么要这样做,可能有一种不同的方法更适合您。

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

实际上我现在正在使用这个想法,而且效果非常好。诀窍是让页面发送一个包含随机字符串的“nonce”参数。然后,页面每隔100毫秒左右开始轮询
document.cookie
,检查该字符串是否在cookie中

服务器依次将所选的cookie(不管它叫什么)设置为表单在“nonce”参数中发送的值。然后,它会像往常一样发送文件下载

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


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

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

实际上我现在正在使用这个想法,而且效果非常好。诀窍是让页面发送一个包含随机字符串的“nonce”参数。然后,页面每隔100毫秒左右开始轮询
document.cookie
,检查该字符串是否在cookie中

服务器依次将所选的cookie(不管它叫什么)设置为表单在“nonce”参数中发送的值。然后,它会像往常一样发送文件下载

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

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