ファイルに書き込みたいデータがあり、ユーザーがファイルを保存する場所を選択できるようにファイル ダイアログを開きます。すべてのブラウザーで動作すれば素晴らしいのですが、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 では、データは新しいタブで開かれるため、このファイルを手動で保存する必要があります。