2013/08/28(水) [n年前の日記]
#2 [javascript] JavaScriptでファイル保存するのってどうやるんだろう
_2012/02/11の記事内
で、
_円錐台の展開図を計算できるページ
を公開してたわけだけど。「SVGファイルが保存できない」との報告を頂けたので、原因を調べて修正したり。
_BlobBuilderインターフェースが非推奨となっていた - 人生が二度あれば という記事が参考になった。ファイル保存時に使ってた、BolbBuilder なるものが、今のブラウザでは消滅してるそうで。
_Firefox 13 の後方互換性に関わる修正 | Mozilla Developer Street (modest) の中で、修正のヒントが。
_ FileとWebの関係をもっと知る: Blob, FileそしてFileSystemAPI - Google ドライブ でも解説されてた。ありがたや。
_forked: テキストをファイルとして保存 File API: Writer - jsdo.it - Share JavaScript, HTML5 and CSS でも、そのものズバリのサンプルが。ありがたや。
_Getting Started - SVG | MDN によると、svgファイルは、
_BlobBuilderインターフェースが非推奨となっていた - 人生が二度あれば という記事が参考になった。ファイル保存時に使ってた、BolbBuilder なるものが、今のブラウザでは消滅してるそうで。
_Firefox 13 の後方互換性に関わる修正 | Mozilla Developer Street (modest) の中で、修正のヒントが。
また、Firefox 13 では同時に Blob をコンストラクタとして利用可能になったため、BlobBuilder を使っていたコードは Blob コンストラクタを用いて簡単に書き直せます。例えば次のようにコードを書き換えてください:???BlobBuilder() は使わずに、Blob() を使え、ということらしい。
// Firefox 12 までのコード
var bb = new MozBlobBuilder();
bb.append("Fire");
bb.append("fox");
var firefox = bb.getBlob();
var fox = firefox.mozSlice(4,7);
// Firefox 13 からのコード
var firefox = new Blob(["Fire", "fox"]);
var fox = firefox.slice(4,7);
なお、MozBlobBuilder はサポート継続されていますが、非推奨となっており将来的に削除される見込みです。Firefox 14 以降では MozBlobBuilder を使用すると Web コンソールに警告が出力されるようになります。Blob.slice() への変更と合わせて Blob コンストラクタへの切り替えをお薦めします。
_ FileとWebの関係をもっと知る: Blob, FileそしてFileSystemAPI - Google ドライブ でも解説されてた。ありがたや。
_forked: テキストをファイルとして保存 File API: Writer - jsdo.it - Share JavaScript, HTML5 and CSS でも、そのものズバリのサンプルが。ありがたや。
_Getting Started - SVG | MDN によると、svgファイルは、
Content-Type: image/svg+xmlでいいらしい。
[ ツッコむ ]
以上です。