JavaScript でファイルを作成して保存する [重複] 質問する

JavaScript でファイルを作成して保存する [重複] 質問する

ファイルに書き込みたいデータがあり、ユーザーがファイルを保存する場所を選択できるようにファイル ダイアログを開きます。すべてのブラウザーで動作すれば素晴らしいのですが、Chrome で動作する必要があります。これをすべてクライアント側で実行したいと考えています。

基本的に、この関数に何を入れるべきかを知りたいのです。

saveFile: function(data)
{
}

関数はデータを受け取り、ユーザーにファイルを保存する場所を選択させ、その場所にそのデータを含むファイルを作成します。

役に立つなら、HTML を使用するのも問題ありません。

ベストアンサー1

コードのごくわずかな改良すごい01(アンカータグは不要)提案された追加事項トゥルーイメージ(IE のサポート):

// Function to download data to a file
function download(data, filename, type) {
    var file = new Blob([data], {type: type});
    if (window.navigator.msSaveOrOpenBlob) // IE10+
        window.navigator.msSaveOrOpenBlob(file, filename);
    else { // Others
        var a = document.createElement("a"),
                url = URL.createObjectURL(file);
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        setTimeout(function() {
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);  
        }, 0); 
    }
}

Chrome、FireFox、IE10 で正常に動作することがテスト済みです。

Safari では、データは新しいタブで開かれるため、このファイルを手動で保存する必要があります。

おすすめ記事