HTML5のBlobでhtml内で生成した動的データを保存する(angular)
HTML5のFileAPI機能にBlobという機能があります。(IE 10.0以降、Firefox 13.0以降、Chrome 20.0以降のはず) そのBlobを使って、サーバーを経由せずにhtmlだけで生成したデータをダウンロードする方法
今回Angularを使用しながらやってみた
JS側
//Blobを使ってバイナリデータを作る //dataはjsonにしたいデータをString形式にする var blob = new Blob([ data ], { "type": "application/json" }); //バイナリデータを元にURLObjectを作る var url = (window.URL || window.webkitURL).createObjectURL(blob); //出来たURLをhref要素にする $scope.url = url;
html側
<a download="sample.json" ng-href ="{{ url }}">ダウンロード</a>
a tagのdownload要素を使用して、hrefに指定したものをダウンロードできるようになる。 この時ファイル名はsample.jsonになります。