■データURL

※参考: MDN / データURL


●使用例: <img src="data:~">


©M.C.Escher
データURLとは「data:」で始まるURLで、任意のファイルをテキストデータとして文書に埋め込むことができる。

左の画像はバイナリデータを base64 形式のテキストに変換し、データURLとして HTML 文書に埋め込んだものである。 base64 変換については後述する。

●使用例: <iframe src="data:~">

データURLとして書かれた文書を、<iframe> の中に表示することができる。 たとえば下記のリンクをクリックすると、その内容を下部の <iframe> に表示する。


※注: charset を指定しない場合は、"charset=us-ascii" とみなされる。


●データURL表示先の制約について

セキュリティ的な制約から、データURLを次の方法でトップレベルのウィンドウに表示することはできない。 表示先がフレームなら問題ない。

ただし次の場合は、トップレベルのウィンドウにもデータURLを表示できる。

※参考: Mozilla / データ URL へのトップレベルナビゲーションのブロック


●Base64 変換

バイナリデータや UTF-8 エンコード以外の文字列をデータURLに埋め込みたい場合は、次のような Base64 形式を利用する。

<img src="data:image/png;base64,Base64テキスト">

Base64 テキストは JavaScript で簡単に作れる。 たとえば次に示すのは、ローカルファイルを読み込み、Base64 形式のデータURLとして出力するツールである。


※フレーム内のみ表示→ enc-base64.html