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

Operaでもいけるらしい。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能