WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

JavaScript で IE7 を判別する方法いろいろ

もうすぐ IE7 正式版がリリースされるそうですが、 JavaScript 中で IE7 を判別する方法が以下のページで紹介されていました。

http://ajaxian.com/archives/detecting-ie7-in-javascript

記事本文で紹介されているもの以外にもコメントでさまざまな方法が掲載されていますので、備忘録代わりに記事にしようかと思います。なお、私はまだ IE7 に移行していませんので、動作確認は取れていません。完全な受け売りです。もしうまく動かなかったらご勘弁ください。

maxHeight が定義されているかどうかで判別

記事本文で解説されている方法です。 IE7 では max-height などの CSS プロパティーが新たにサポートされたので、それを使って判定しています。

if (typeof document.body.style.maxHeight != "undefined") {
  // IE 7, mozilla, safari, opera 9
} else {
  // IE6, older browsers
}

window.XMLHttpRequest で判別

IE7 では Firefox 互換の XMLHttpRequest がサポートされたんですね。

if (window.XMLHttpRequest) {
  // IE 7, mozilla, safari, opera 9
} else {
  // IE6, older browsers
}

Conditional Compilation を使う

IE4 から実装されている Conditional Compilation という IE の独自機能を使う方法です。

/*@cc_on
  /*@if (@_jscript_version > 5.6)
    document.write("IE7");
  @else @*/
    document.write("Others (IE6, Firefox, Opera etc...)");
  /*@end
@*/

IE7 に搭載されている JavaScript のバージョン番号がわからなかったので、上記のコードでは IE6 の現行バージョンである 5.6 より大きければ IE7 と判定してしまっています。 IE7 をお使いの方、バージョン番号を教えていただけるとうれしいです(^^ゞ

Conditional Comment を使う

こちらも IE の独自機能である Conditional Comment を使って判別する方法です。

<!–[if IE 7]>
<script>isIE7 = true;</script>
<![endif]–>

同様にして IE6 も判定できるはずです。

CSS 内での判定

JavaScript ではありませんが、 CSS ファイルでの場合分けの方法も書き込まれていました。

#content {
margin:10; /*any browser*/
*margin:15; /*ie 6*/
_margin:20; /*ie 6 and 7*/
}

以上、 IE7 対応のお役に立てば幸いです。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles