Sunday, February 27, 2011

◉このブログの支援のためのwebサイトが、「IE8で見ると画面が真っ白でなにも表示されない」と指摘された。

このブログの支援のためのwebサイトが、「IE8で見ると画面が真っ白でなにも表示されない」と知人から指摘された。早速IE8で確認してみると、トップページやその他の幾つかのページを除いて、真っ白になっている。

真っ白になるというのは、IE7でも起きていた現象だが、F5Ctrl+R、リロードボタンなどで、リロード(ページ再読み込み)すると、直ることがあった。しかし今回の現象はダメ。

ページのエンコードを見てみると「shit_jis」になっている。このページは「charset=UTF-8」にしているが、これが無視されたかたち。

そこで、見えるページと真っ白なページはなにが違うのかcharsetまわりのソースを見比べてみた。結果はすぐに分かった。titleタグの位置が違っている。
見えるページは、metaタグのcharset宣言がtitleタグの前にあり、真っ白なページはその逆になっていた。

これから類推すると、真っ白なページは、IEがレンダリングする際に最初に出会った日本語(title部分の)からshit-jisと判別し、後に出てくるcharsetを無視→実際はエンコードがUTF-8なので解釈できない→真っ白ということになるのか。

とりあえず、問題が起きたすべてのページのcharset宣言を最初に日本語が出てくるtitleの前に置き直した。
修正したwebページサンプル:http://stluke7.web.fc2.com/article10.html

以前もIEの場合、SCRIPTタグとマルチバイト文字セットである日本語文字が併用されていると「真っ白なページ」バグが発生する可能性が指摘されていたが、IE8では修正されているものと思っていた。

仕事関係では、IEのすべてのバージョン(IE6以上だけどOSも含めて)でwebデザインを確認しているが、自分のwebサイトは軽くchromeなどでのチェックで済ましていた。その結果ここ2、3ヶ月意味不明な「真っ白なページ」を表示したままでいたことになる。ちょっとショック。でも逆に言えば自分のwebサイトで良かった。仕事関係だったらたいへんなことになっていたはず。

それにしてもIEに関わる悩みはつきない。

HomeAny source

No comments:

Post a Comment