本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/01/29/a%E5%85%83%E7%B4%A0%E7%9A%84download%E7%89%B9%E6%80%A7/
摘要
本文主要讲述了:
- 作用
- 特性值
- 仿真实验
正文
作用
提示浏览器下载href
,而不是跳转到href
注意:
- 理论上,该特性应该只在
href
的值为同源 URL、blob URL、data URL 时有效 - 经过测试,在不同的浏览器上,该特性的表现并不总是可靠的
- 如果该特性无效,那么浏览器将跳转到
href
特性值
若download
有值,那么浏览器会以它作为【另存为对话框】中的文件名(\
和/
会被转换成下划线)
若download
没有值,那么浏览器会根据以下条件来生成【另存为对话框】中的文件名或文件扩展名:
Content-Disposition
响应头中的filename
指令- URL 中的最后片段,例如:
a.example.com/test.png
中的test.png
- MIME 类型,例如:
data:image/png;
中的image/png
仿真实验
示例:
1 |
|
实验结果
System | Browser Name | Browser Version | Result |
---|---|---|---|
Windows 10 | IE | 11.0 | 不支持 |
Windows 10 | Edg | 80.0.361.69 | 符合规范 |
Windows 10 | Firefox | 74.0 | 符合规范 |
Windows 10 | Chrome | 80.0.3987.149 | 符合规范 |
Android | EdgA | 42.0.0.2741 | 符合规范 |
Android | Firefox | 68.0 | 另存为对话框中的文件名未使用download 的值,但实际保存的文件名使用了download 的值 |
Android | UCBrowser | 12.9.7.1077 | 另存为对话框中的文件名和实际保存的文件名未使用download 的值,无法下载 data URL 和 blob URL,可下载跨源文件 |
Android | 360 浏览器 | 9.0.0.140 | data URL 的实际保存的文件名未使用download 的值,无法下载 blob URL |
Android | MicroMessenger | 7.0.13.1640 | 点击没反应,不支持 |
Android | QQ webview | 8.3.3.4515 | 弹出 QQ 浏览器推广页,不支持 |
iOS | Safari | 13.0.5 | 某些情况下另存为对话框中的文件名会加上.html 的后缀,但实际保存的文件名正常 |
结论
- 部分浏览器不支持 a 元素的
download
特性 - 部分浏览器不可下载 blob URL 或 data URL
- 部分浏览器不会使用
download
的值作为文件名
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/01/29/a%E5%85%83%E7%B4%A0%E7%9A%84download%E7%89%B9%E6%80%A7/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/01/29/a%E5%85%83%E7%B4%A0%E7%9A%84download%E7%89%B9%E6%80%A7/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。