【发布时间】:2019-04-03 18:10:02
【问题描述】:
在 Safari 11/12 中,我有一个带有 href="data:" 和属性“download”的标签,用于在单击链接时保存文件。
<!DOCTYPE html>
<html><body>
<a href="data:text/plain;charset=utf-8,Hello" download="hello.txt">
Click me
</a>
</body></html>
这在 Chrome 和 Firefox 中运行良好,在 Safari 中也可以在未固定的选项卡中运行。单击该链接会将文本“Hello”下载到一个名为 hello.txt 的新文件中。但是,在 Safari 的固定选项卡中,下载属性似乎被忽略了,Safari 在新选项卡中打开了数据。
要查看此内容,您需要从 Web 服务器提供上述 HTML 代码。如果您只是保存文件并使用“file://” URL 打开它,它会按预期工作。
我尝试使用 Blob,但行为相同。
我尝试将 mimeType 更改为“application/octet-stream”,这是我发现的类似问题的建议。这确实会导致数据被下载,但文件名始终是“unknown.txt”。这不合适,因为我需要控制文件名和扩展名(它不是 hello.txt!)
另外说明,Safari 11 和 12 中的行为实际上有所不同,但两者都不能正常工作。 11、数据在新标签页中打开。在 12 中,它打开一个新选项卡,但显示打开数据时出错。
对我来说,这看起来像是 Safari 中的一个错误。任何人都可以提出解决方法吗?
谢谢
【问题讨论】: