トップページ > コンテンツ > プログラミング入門 > Ajax入門 > JavaScript入門 > javascriptファイル入出力 > ローカルファイルとしてダウンロード

http://piro.sakura.ne.jp/latest/blosxom/webtech/javascript/2005-10-05_download.htmのサイトに
書かれているように、
location.href = 'data:application/octet-stream,'+encodeURIComponent(データ);
とすると、ダウンロードリンクを生成できる。

http://fantakeshi.blog50.fc2.com/blog-date-201104.htmlにも記述があるが、
IEだと、<iframe name="frame" style="visibility:hidden" width="0" height="0"></iframe>
のように見えないフレームに、frame.document.write(データ)でデータを書き込み
frame.document.execCommand("SaveAs");で保存する手段があるようだ。

とりあえず、HTML5のFILEAPI:Writeが実装されるまではかなり有効な手段だと思われる。
他にもHTML5のaタグのdownload属性を使って、ファイルをダウンロードさせるような手段もある模様。



■備考
上でdata:の形式で記載したが、これをdata URIと言う。
data URIを使ってhtml上に直接データを埋め込むと、
画像等のリクエストを送る回数が減るため、高速化が期待されると言われている。
ただし、ファイル容量は大きくなるので、大きいデータ向きではない。

書式は以下の通り。
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
最終更新:2015年12月22日 20:16