YanKavenのウェブサイト: http://dancewithnet.com/
データURI
データ URIは、小さなファイルをドキュメントに直接埋め込むためにRFC 2397で定義されたスキームです。次の構文を使用すると、小さなファイルを指定したエンコーディングに変換し、ページに直接埋め込むことができます。
データ:[
HTML 4.01 は、前世紀にデータ URI スキームを導入しました。現在、IE6 と IE7 を除くすべての主流ブラウザは、データ URI のサポートに制限があります(画像のみ)。 CSS の img、input type=image、link および URL、データ サイズは 32K を超えることはできません。
アドバンテージ:
欠点:
MHTML
MHTML は、 MIME HTML (MultiPurpose Internet Mail Extension HTML)の略称で、マルチメディア ページのすべてのコンテンツを同じドキュメントに保存するための、RFC 2557 で定義されたソリューションです。この解決策は、IE5.0 からサポートするために Microsoft によって提案され、Opera9.0 でもサポートされ始めました。Safari はファイルを .mht (MHTML ファイル拡張子) 形式で保存できますが、その表示はサポートしていません。
MHTML はデータ URI に比較的似ており、より強力な機能とより複雑な構文を備えており、データ URI の「再利用できない」という欠点はありません。ただし、MHTML は柔軟性がなく、使用が便利ではありません。 mht ファイル内のリソース参照は相対アドレスにすることができますが、それ以外の場合は絶対アドレスにする必要があります。 hedger の IE 向けソリューション「HTML に埋め込まれたクロスブラウザ Base64 エンコード画像」では、Content-type: message/rfc822 が宣言されているため、IE が MHTML に従って解析するように相対パスを使用します。Content-type を変更しない場合は、次のことが必要です。 MHTML プロトコルを使用するには、この時点で「MHTML – データが必要な場合: IE7 以前の URI」のように絶対パスを使用する必要があります。
応用
データ URI と MHTML を組み合わせると、すべての主流ブラウザの問題を完全に解決できます。これらはキャッシュして再利用できないため、ページ内で直接使用するのには適していませんが、CSS および JavaScript ファイル内の画像には適切に使用できます。使用すると次のような大きな利点があります。
CSS でのデータ URI と MHTML の実装を容易にするために、データ URI と MHTML ジェネレーターを作成しました。これを使用してデータ URI と MHTML を生成するアプリケーション例をご覧ください。
CSS ファイルで MHTML を使用する場合、URL は絶対パスを使用する必要がありますが、これは柔軟性が非常に低いため、次のような CSS 式 ( DEMO ) を使用して解決することを検討できます。
/*
http://old9.blogsome.com/2008/10/26/css-expression-reloaded/
http://dancewithnet.com/2009/07/27/get-right-url-from-html/
*/
*背景画像:式(関数(ele){
ele.style.backgroundImage = 'url(mhtml:' +
document.getElementById('data-uri-css').getAttribute('href',4) +
'!03114501408821761.gif)';
}(これ));