JavaScriptからファイルをダウンロードさせるのはどうしたら良いですか？


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

[code]

    $.getJSON('/data.json', function(data) {
      // ファイルダイアログを表示して、指定したファイルへ data を書き込む
    });
    
[/code]




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

[code]

    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();  
    };
    
[/code]

コレでも可

[code]

    var downloadAsFile = function(fileName, content) {
        var a = document.createElement('a');
        a.download = fileName;
        a.href = 'data:application/octet-stream,'+encodeURIComponent(content);
        a.click();
    };
    
[/code]




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

[code]

    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();  
    };
    
[/code]

コレでも可

[code]

    var downloadAsFile = function(fileName, content) {
        var a = document.createElement('a');
        a.download = fileName;
        a.href = 'data:application/octet-stream,'+encodeURIComponent(content);
        a.click();
    };
    
[/code]

