spe*_*peg 5 javascript safari url
我有一个离线html文件,通过将window.location设置为生成并保存CSV
data:text/csv;base64,Intfa2V5fSIsInt...
Run Code Online (Sandbox Code Playgroud)
但是,在Safari中,这只会在浏览器中显示CSV.
将网址设置为:
data:application/csv;base64,Intfa2V5fSIsInt...
Run Code Online (Sandbox Code Playgroud)
强制Safari下载文件 - 但它获得的通用文件名只是'Unknown-3'.有没有办法指定文件名?
首先,警告:application/csv不是有效的MIME类型,因此在这种情况下它"适用"的事实纯粹是一个实现怪癖,将来很可能会改变.(例如,Safari 显示 application/octet-stream,我希望下载.)
HTML5确实有一个新<a download="file.name">属性.这会强制浏览器将文件下载到磁盘; 它使用属性的值作为默认文件名.它与数据URI或blob URI 一起使用.(演示)
但是,它目前仅受Chrome(14+)支持.Safari 5.1忽略该属性.
一种可能的替代方法是使用Filesystem API,但这会为您提供一个沙盒文件夹.例如,您无法将文件直接保存到用户的Documents文件夹中.相反,您可以将文件写入沙箱,然后重定向到新filesystem架构上的文件:
location.assign('filesystem:http://example.com/temporary/somefile.csv');
Run Code Online (Sandbox Code Playgroud)
这应该调用UA的下载机制(使用正确的文件名!),但我没有测试过,所以Safari可能只会显示文件.
| 归档时间: |
|
| 查看次数: |
11341 次 |
| 最近记录: |