最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Cross-browser Save As .txt - Stack Overflow

programmeradmin1浏览0评论

Is there a JavaScript library that allows to save strings as txt files, and works cross-browser?

In the past, I have been using Downloadify, but I am looking at another option for a couple reasons:

  • I hope to find a pure JavaScript solution, without the need for Flash
  • it seems that Downloadify is not updated anymore (no update in the past 18 months)
  • I am experiencing an issue with Downloadify in IE 9, where strings are cut off

Is there a JavaScript library that allows to save strings as txt files, and works cross-browser?

In the past, I have been using Downloadify, but I am looking at another option for a couple reasons:

  • I hope to find a pure JavaScript solution, without the need for Flash
  • it seems that Downloadify is not updated anymore (no update in the past 18 months)
  • I am experiencing an issue with Downloadify in IE 9, where strings are cut off
Share Improve this question asked Jun 24, 2011 at 7:43 ChristopheChristophe 28.1k29 gold badges101 silver badges143 bronze badges 1
  • 1 The short answer: no. Longer answer: Plugins, signed javascript. Cross browser: not without flash – mplungjan Commented Jun 24, 2011 at 7:57
Add a comment  | 

3 Answers 3

Reset to default 8

Here is what you need. But it's not cross-browser yet. Works in Google Chrome.

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

Also Wikipedia has a good article about Data URI

As far as I know, the only way is to use data: URLs to force a download:

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

Two catches here:

  • It won't work in MSIE because its support of data: URLs is very limited (supposedly for security reasons). So you will still need Downloadify there.
  • You cannot specify a file name, the suggested file name will depend on the browser used. And file type will be "unknown" (you cannot use a known MIME type because the browser won't offer to download the file then).

Bonus reading: there was a W3.org discussion in February 2010 on fixing the second problem: http://lists.w3.org/Archives/Public/uri/2010Feb/thread.html#msg58. However, this doesn't seem to have made it into any specification so far, let alone browser implementations.

FileSaver API is cross-browser compatible

var text = "Hello, world!";
var blob = new Blob([text], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "filename.txt");
发布评论

评论列表(0)

  1. 暂无评论