2010年11月14日日曜日

IE6 no more !!

 ネットのニュースサイトを見ていた時の事,「『IE6』用アプリが『Windows 7』導入の問題に」という記事をみた。私が見たのはやほ~のニュースサイト経由だった。記事の内容はIE6が独自のJavaScriptの文法を持っていて,いちいちサイトをIE6でちゃんと見れるようにするのは大変で,コストがかかるという話。すでにGoogle,YouTube,Yahoo ! Japanなどが,IE6など古いブラウザのサポートを終了しているらしい。なのに未だにIE6以降で最適化しているとどうどうと言うサイト制作者がいるのが信じられないが…

 その記事の中に「IE6 no more」というサイトがあると書いてあったので見てみた。そこではIE6はもうやめよう,ということで,簡単なコードをサイトの上の方に埋め込んで,IE6をやめるように世の中に広めよう,というものだった。この考えに私も激しく賛同しているので,自分のサイトに日本語用のコードを埋め込んでみた。ところがこれがうまく確認できなかった。FirefoxでUser Agentをいじったり,IE8で互換モード対応にしてみたりしたがうまくいかなかった。(ちなみにIE6 no moreのサイトの日本語のコードにはミスがあるようで,「IE6はもういらない IE6 No More」の配布コード間違いを見て欲しい)仕方なく,問題のコード見てみた。すると,中身は大体わかったのだが,どうしてもわからかったのがコードの最初と最後の命令(?)文。
<!--[if lt IE 7]>
....
<![endif]-->
apacheにはそんなやつなかったよなぁ…。だいたい「it」ってなんやろ…?これでしばらく悩んでしまった。

 最終的にこれが私の嫌いなMicroSoftの「コンディショナルコメント」という事がわかるまでにしばらく時間がかかってしまった。検索しても最初の方にでなかったし…。

 これはInternet Explorer独自の命令らしい。webの中にコメントという形でコマンドを入れれる,ってやつ。ここで「it」と思っていたのは「lt」だった。大文字で書くと「LT」。つまり「less than」のことだった。つまり「if lt IE 7」は「IE 7より下のバージョンのIEだったら」という意味だった。それで何が書いてあるかが理解できた。つまりIE6以下のバージョンだったら,警告文を表示する,というもの。ここを「if lt IE 9」とすると IE8 でもメッセージが表示された(当然,確認後すぐに戻したけど。)これで私も IE6 no more 運動に賛同してると意思表示できる!!

追記)ちなみにこのページにもコードを埋めこんである。でも,そもそもこのサイトってIE6で見れるのかなぁ?