概要
このライブラリーを使用すると IE 7 以下でも data スキーム URI を使う方法をエミューレートすることができます。(data スキーム URI については IE 7 以下で data スキーム URI を利用する方法と、data スキーム URI についてで解説をしています。)
- PHP を使用するので、PHP が動く環境で動作します。
- 現バージョンでは大きな画像には対応していません。data スキーム URI の文字数が 4096 文字を超える場合の解決策は次回以降対応予定です。
PHP でやっていることの解説は Development Reference の中の人がそのうちエントリーすると思います。
使い方
HTML の head 要素内になどで detaScheme.htc を JavaScript として読み込みます。
e.g.
<script type="text/javascript" src="js/detaScheme.htc"></script>
detaScheme.htc と同じディレクトリに detaScheme.php を配置します。
以上です。これで、IE 7 以下でも data スキーム URI を用いた画像を表示することができます。
解決予定の問題 (2009 年 2 月 18 日現在)
IE では src 属性値が 4096 文字を超えると 4097 文字目以降は削除されて処理されてしまうようです。おそらく、IE が text/html として受け取った時点で削除されていそうです。4096 文字以上の src 属性値を持つ画像に対して getAttribute(’src’) や、 img.outerHTML で src 属性値の取得をしようとしてみましたが 4096 文字までしか取得できませんでした。この問題は IE 8 では解決されています。
そのため長い文字列、つまり大きい画像の data スキーム URI は対応できなさそうです。ただ、今後改善できるようにがんばってみます。
ただ、RFC2397 には
could be used for a small inline image in a HTML document. (The embedded image is probably near the limit of utility. For anything else larger, data URLs are likely to be inappropriate.)
と書いてあります。でもせっかくなら大きい画像にこそ使いたいので。

トラックバックURI
http://www.yomotsu.net/lab/javascripts/ie6_data-cheme/trackback
コメント
tomoさんからのコメント
2009年7月10日 0:21
はじめまして。
非常に興味深い記事で是非、データをダウンロードしてみたいと思ったのですが、どうやらデッドリンクの様です。
事情あっての事かもしれませんが、よろしければダウンロードできるようにしていただけると嬉しいです。
adminさんからのコメント
2009年7月10日 23:01
@tomo さま
はじめまして。お読みくださりありがとうございます。
ダウンロード用のファイルを再度アップロードしましたのでお試しください !!
データURIスキーム | MOLさんからのコメント
2010年4月7日 19:20
[...] IE 7 以下で data スキームを URI 利用する | ヨモツネット [...]
コメントフォーム
実験室に戻る