跨浏览器另存为.txt

时间:2011-06-24 07:43:53

标签: javascript save-as execcommand data-uri

是否有一个JavaScript库允许将字符串保存为txt文件,并且可以跨浏览器工作?

过去,我一直在使用Downloadify,但我正在寻找其他选项,原因有两个:

  • 我希望找到一个纯粹的JavaScript解决方案,而不需要Flash
  • 似乎不再更新Downloadify (过去18个月没有更新)
  • 我遇到了IE 9中的Downloadify问题,其中字符串被截断

2 个答案:

答案 0 :(得分:8)

Here is你需要什么。但它还不是跨浏览器。适用于谷歌浏览器。

<a download="MyFile.txt" 
   href="your-data-uri-here"
   draggable="true" 
   class="dragout"
>Download ready</a>

维基百科也有一个很好的article about Data URI

答案 1 :(得分:6)

据我所知,唯一的方法是使用数据:URL强制下载:

var data = "This is a test";
window.location.href = "data:application/x-download;charset=utf-8," + encodeURIComponent(data);

这里有两次捕获:

  • 它不适用于MSIE,因为它对数据的支持:URL非常有限(据称是for security reasons)。所以你仍然需要在那里进行Downloadify。
  • 您无法指定文件名,建议的文件名将取决于所使用的浏览器。并且文件类型将是“未知”(您不能使用已知的MIME类型,因为浏览器不会提供下载文件)。

奖金阅读:2010年2月有一个关于解决第二个问题的W3.org讨论:http://lists.w3.org/Archives/Public/uri/2010Feb/thread.html#msg58。但是,到目前为止,这似乎并没有成为任何规范,更不用说浏览器实现了。