Firefox 当使用saveAs提示位置时,无法从弹出窗口完成下载
我一直在开发一个浏览器扩展,允许用户从任何网页生成epub文件 要使用扩展,用户必须单击工具栏按钮,打开一个弹出窗口。对于后者,在指定配置后,用户单击“生成”。但我的问题是: 当我直接使用下载API,并将Firefox 当使用saveAs提示位置时,无法从弹出窗口完成下载,firefox,firefox-addon,firefox-addon-webextensions,Firefox,Firefox Addon,Firefox Addon Webextensions,我一直在开发一个浏览器扩展,允许用户从任何网页生成epub文件 要使用扩展,用户必须单击工具栏按钮,打开一个弹出窗口。对于后者,在指定配置后,用户单击“生成”。但我的问题是: 当我直接使用下载API,并将saveAs指定为false(即不会提示用户将文件保存在何处)时,下载将按预期完成,文件将保存在某个位置 但是,当我将saveAs设置为true时(这是我在最终版本中所希望的),一旦用户选择了保存文件的位置,下载就会失败。我的直觉是,一旦文件位置窗口弹出,弹出窗口就会失去焦点并消失,这使得下载无
saveAs
指定为false(即不会提示用户将文件保存在何处)时,下载将按预期完成,文件将保存在某个位置
但是,当我将saveAs
设置为true时(这是我在最终版本中所希望的),一旦用户选择了保存文件的位置,下载就会失败。我的直觉是,一旦文件位置窗口弹出,弹出窗口就会失去焦点并消失,这使得下载无法继续
这就是解释吗?有没有办法防止这样的问题?我不认为我的用例有太大的伸缩性,也不明白为什么与浏览器操作相关联的弹出窗口不允许在文件选择时失去焦点
另一件奇怪的事情是,我非常自信这个问题最近才出现在firefox上,因为当我开始开发扩展时,我没有任何问题
我的直觉是,一旦文件位置窗口弹出
弹出窗口会失去焦点并消失,这使得下载无法进行
恢复
没错
浏览器操作弹出页面,一旦页面关闭,异步操作将失去引用。最好将异步操作传递给后台脚本
- 你可以用 将消息传递给后台脚本以运行下载
- 您还可以使用异步
在后台脚本中运行函数,但第一个选项有效
更简单,因为您不需要像在
runtime.getBackgroundPage()中那样等待异步响应