"新人Webエンジニアの記録。"より転載 ( https://blog.fagai.net/2014/08/09/javascript-only-save/ )

java script 内の変数文字列を Blob (Binary large object)にして ダウンロードします。
HTML上の scriptからローカルのファイルに書き込みはセキュリティによりできないそうです。
下記サンプルのようにダウンロードの形式を取ります。

Blob とは

サンプルファイル(java script側)

[js01.js]
var text = "Text data です";

var blob = new Blob([text], {type: "text/plain"}); // バイナリデータを作ります。

// IEか他ブラウザかの判定
if(window.navigator.msSaveBlob)
{
    // IEなら独自関数を使います。
    window.navigator.msSaveBlob(blob, "./test.txt");
} else {
    // それ以外はaタグを利用してイベントを発火させます
    var a = document.createElement("a");
    a.href = URL.createObjectURL(blob);
    a.target = '_blank';
    a.download = 'a.txt';
    a.click();
}