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 対応のお役に立てば幸いです。
詳しくはこちらの記事をどうぞ!
この記事にコメントする