Анд*_*рей 9 javascript firefox
我有以下用于从后端下载 PDF 文件的代码:
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.setAttribute('target', '_blank')
link.setAttribute('download', file_name)
link.click()
link.remove()
setTimeout(() => window.URL.revokeObjectURL(url), 100)
Run Code Online (Sandbox Code Playgroud)
它在 Chrome 中按预期工作,我相信它以前在 Firefox 中工作,但现在 Firefox 在同一选项卡中打开文件而不是下载,忽略目标和下载属性。
Ach*_*him 14
这是 98 及以上版本的预期行为。默认情况下,PDF 设置为在 Firefox 中打开。
如果您将 Blob 的 mimetype 更改为“application/octet-stream”,或者将其 href 分配给页面内的 iframe 的链接作为目标,我想您会恢复以前的行为。
当下载属性应用时,它的处理方式与服务器发送的“Content-Disposition:附件”标头相同。Firefox 开发人员认为用户的偏好应该胜过服务器所说的内容 - 无论用户是否表示希望 PDF 在外部应用程序(Acrobat 或 w/e)中打开、自动保存到磁盘或在 Firefox 中打开。
来源:https ://bugzilla.mozilla.org/show_bug.cgi?id=1756980
编辑:
Firefox 在同一选项卡中打开文件并忽略目标属性是一个错误。
来源:https ://bugzilla.mozilla.org/show_bug.cgi?id=1759916