Oct 05, 2005
JavaScriptでテキストファイルを生成してダウンロードさせる
どうでもいい小ネタ。
- Content-Typeがapplication/octet-streamなデータを受信すると、ブラウザはそのファイルをダウンロードして保存するためのダイアログを表示する(という物が多い)。
- data: URLを使うと、URIの中にデータを埋め込むことができる。
この二つの事柄から、application/octet-streamなdata: URLを読み込ませれば、Webページ上のJavaScriptだけでもファイルの生成と保存ができるのではないか? と推測することができる。ンで、Firefoxで実際に試してみた。
var text = textbox.value;
location.href = 'data:application/octet-stream,'+encodeURIComponent(text);
こんな感じに書いてみたところ、改行も含めて問題なくいけた(ダウンロードされたファイルのエンコーディングはUTF-8)。ただし、ファイル名をユーザ自身が指定し直さないといけないのが欠点。
まあ無いよりはマシだろうということで、これを使って高橋メソッド in XUL リターンズの編集画面に「保存」機能を付けてみたわけですが。
malaさんよりタレコミ。<a href="data:...">ファイル名</a>というリンクを生成してAlt-クリックすると、アンカー文字列がファイル名になるそうな。XULでは使えない技だけど、メモ。
追記@2005.10.6
wikieditish message: Ready to edit this entry.