javascriptsave-asexeccommanddata-uri

Cross-browser Save As .txt


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:


Solution

  • 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:

    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.