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);
文字を入力してから「保存」をクリックする