18

ブラウザーでダウンロードリンクを踏んだときのようにJavaScriptからファイルをダウンロードさせたいのですが、どのようにしたら良いでしょうか?

$.getJSON('/data.json', function(data) {
  // ファイルダイアログを表示して、指定したファイルへ data を書き込む
});
niu
  • 2,000
  • 6
  • 34
  • 44

1 Answers1

19

contentfileNameでダンロードしたい場合の実装
contentは生の文字列

var downloadAsFile = function(fileName, content) {
    var blob = new Blob([content]);
    var url = window.URL || window.webkitURL;
    var blobURL = url.createObjectURL(blob);

    var a = document.createElement('a');
    a.download = fileName;
    a.href = blobURL;
    a.click();  
};

コレでも可

var downloadAsFile = function(fileName, content) {
    var a = document.createElement('a');
    a.download = fileName;
    a.href = 'data:application/octet-stream,'+encodeURIComponent(content);
    a.click();
};
Taizan Yonetuji
  • 2,846
  • 7
  • 32
  • 51