【JavaScript】IE6だと画像が表示されたり、されなかったり
またもやIE6でちょっと嵌ったのでメモ。
IE6 SP2(Windows XP SP2のIE)だとgif画像がなぜか表示されない。タグは生成されているけど、右クリック→画像の表示とやると見える。しかもブラウザによって見えたり見えなかったりするので、読み込みとかキャッシュが関連するのではないかと調べてみた。
ちなみに現象が起きたのはWordpressのcustom-smilies-seを使って顔文字(絵文字)をポップアップで表示するとき。
参考になったのはここのサイト。
要はJavascriptでimgタグのsrcにセットしていると、画像が読み込まれる前に処理が終わってしまった場合、画像が画面に表示されない。
一度ブラウザにキャッシュされている画像は表示される。
なので、画面を表示するときにimageオブジェクトを使って先行読み込みをしてあげれば良い。
簡単なJavaScriptのコードは以下
objImage = new Image();
objImage.src="test.gif";
genlist_post.js.phpに追加したコードは以下
preLoadImage();
function preLoadImage() {
  <?php
    $i = 1;
    foreach ($clcs_smilies as $k => $v) {
        echo 'objImage_' . $i . ' = new Image();';
        echo 'objImage_' . $i . '.src = "' . $imagesdirurl . $v . '";';
        $i++;
    }
    ?>
}さらに画面が表示するまで時間がかかるようになったので、ベタで表示する方法に変更するかも。