javascript - 文件下载对话框何时打开? - HTML、Javascript

标签 javascript html savefiledialog

我有一个html页面,当我单击页面上的文件链接时,会弹出文件下载对话框,并且此文件对话框会锁定页面。我的意思是,如果不选择其中一个选项(打开、保存、取消),我将无法在页面上执行任何操作(这是正常的)。我需要的是javascript是否可以检查页面是否被锁定。 (或者是否弹出文件对话框?)

附:不要说“为链接添加 onclick 事件”,因为服务器可能响应非常慢(比如点击后 30 秒)

最佳答案

如果你知道你的服务器正在返回一个文件供下载,那么你可以猜测通过这个迂回技巧(我从相关问题的 stackoverflow 答案中得到的对话框)出现的时间我问):

  1. 当您从页面发出 HTTP 请求时,添加一个参数,其值为某个随机字符串(例如 "random"+ new Date().getTime() - 它不会)不必是安全的,但你想避免碰撞)

  2. 服务器查找该参数。当它开始发回附件以供下载时,它会添加一个 cookie,其中包含您的随机字符串作为其值。

  3. 现在,页面发出 HTTP 请求后,它会启动一个间隔计时器。计时器函数中的代码检查 document.cookie 查找该随机字符串。一旦 document.cookie 包含该字符串,您就知道 HTTP 响应已到达浏览器。由于您知道浏览器将要求用户保存附件,因此您可以推断此时正在显示文件对话框。

我需要这个的目的是一种处理来自用户直接“点击”之外的事件的文件附件的 IE 安全问题的方法。我需要关闭模式对话框,因此我需要知道 HTTP 响应何时返回。

关于javascript - 文件下载对话框何时打开? - HTML、Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566360/

相关文章:

javascript - 脚本不从 .angular-cli.json 加载

javascript - 在 Javascript 中对数字和文本进行排序

javascript - 如何比较 2 个 iframe 并在视觉上获得差异?

javascript - 简单的 qtip2 示例不起作用

python - 如何在不使用 tkinter 的情况下在 python 中打开保存文件对话框

wpf - Microsoft.Win32.OpenFileDialog.ShowDialog() 何时返回 null?

c# - 使用 SaveFileDialog 后 GDI+ 的 Bitmap.Save() 发生一般错误

javascript - 同时触发的多个 ajax 调用无法正常工作

html - 在整个网页周围放置一个父 div

html - 主动焦点悬停 : keep parent focus hover when go to sub menu