File API:Writerで定義されているBrobBuilderを使うと、ブラウザ側で書き出したファイルをパソコンなどにダウンロードすることができる。 BrobBuilderは比較的新しい仕様のFileWriteであり、実装がブラウザによって異なる。
次は入力したテキストをダウンロードする例である。IE11とFirefoxで動作の確認ができたが、safari5.1.7では動かなかった。
HTML
<form> <textarea id="txt" rows="5" cols="40"></textarea> <br><br> <input type="button" value="保存" id="exec"> </form> <div id="link"></div>
JavaScript
function fsave(){
var txt = document.querySelector('textarea#txt').value;
txt = txt.replace(/\n/g, "\r\n"); // LF => CR LF
var bb = new Blob([txt]);
var url;
if(window.navigator.msSaveBlob){
// IEの場合
window.navigator.msSaveOrOpenBlob(bb, 'savefile.txt');
} else {
// IE以外
url = window.URL.createObjectURL(bb);
document.querySelector('div#link').innerHTML = '<a href="' + url + '" target="_blank">' + url + '</a><br/>';
}
}
window.addEventListener("DOMContentLoaded", function(){
document.querySelector('form #exec').addEventListener('click',fsave,false);
},false);
文字を入力してから「保存」をクリックする