1. ホーム
  2. Web制作
  3. HTML/Xhtml

IE6での背景画像キャッシュ

2022-01-29 16:07:21

IE6でCSSの背景画像がちらつく不具合(IE6での背景画像キャッシュの問題)

IE6の背景画像は使用されるたびにリクエストを再送信します(ローカルではありません)。同じ背景画像で位置が異なるだけのホバー効果でさえ、IE6は再びリクエストを送信します。
ieにとってfilter:expressionは非常に強力で多くの機能を実現できますが、効率を命とするプログラマーにとっては、その効率は褒められたものではありませんから、ie6で背景画像のキャッシュを実現するためにCSSのメソッドを使う人もいますが、そういう人はMicrosoftの力を崇拝するだけです。

コピーコード
コードは以下の通りです。

html {filter:expression(document.execCommand("BackgroundImageCache", false, true));} Disadvantage of course: it may slow down the loading of the whole page

ほとんどの人は、js方式を選んで実装すると思います。
コピーコード
コードは以下の通りです。

<script type='text/javascript'>
document.execCommand("BackgroundImageCache", false, true);
</script>

欠点:firefoxなどのブラウザで実行するとエラーになる。

そこで、以下のようにjQueryが提供する方法で、Internet Explorerかどうかを判断する必要があります。

コピーコード
コードは以下の通りです。

<script type='text/javascript'>
if ($.browser.msie) {
document.execCommand("BackgroundImageCache", false, true);
}
</script>

さらに簡単なのは、IEの条件付きアノテーションを使うことです。
コピーコード
コードは以下の通りです。

<! --[if lt IE 7]>
<script>document.execCommand("BackgroundImageCache",false,true);</script>
<! [endif]-->