twitter ■お問い合わせ当サイトへのリンクサイト仕様

現在位置 > LostTechnology > WebDesign > JavaScriptでIEのバージョンを判別

JavaScriptでIEのバージョンを判別

JavaScriptでInternet Explorerのバージョンを判別する比較的シンプルなコードのサンプルです。正規表現を利用してnavigator.appVersionから取得しています。jQueryでjQuery.browserjQuery.browser.versionを使えばいいという話もありますが、jQuery 1.3以降は非推奨となっているのでいつ使えなくなるかわかりません。そこで汎用的にブラウザのバージョンが上がっても大丈夫なようなシンプルなコードを書いてみたわけです。

なお、小数点以下は取得していませんので利用する際にはご注意ください。マイナーバージョンで処理を分岐しなければならないケースはなさそうなので今のところ対応予定はありません。

<script type="text/javascript">
var msie=navigator.appVersion.toLowerCase();
msie=(msie.indexOf('msie')>-1)?parseInt(msie.replace(/.*msie[ ]/,'').match(/^[0-9]+/)):0;
</script>

navigator.appVersion >

実行すると変数msieにInternet Explorerのメジャーバージョンが入ります。Firefox、Google Chrome、Operaなどのブラウザで実行した場合は0が入るので、処理を分岐する際にはmsieの値で判定してください。たいていはCSSへの対応が進んだIE9とそれより古いバージョンで判定することになると思います。IE8までとそれ以外のブラウザを分岐するための判定は以下のようなコードでよいでしょう。

if((msie>8)||(msie==0)) /* IE8までは実行させない処理を書く */

また、古くてCSSへの対応が劣っているIE6のみ除外して処理をしたい場合はシンプルに1行で判定できます。IE7以降とFirefox、Google Chrome、Operaで用意されているmaxWidthの存在をチェックするのが楽です。いや、別にmaxHeightで判定してもよいんですけど。

if (typeof document.body.style.maxWidth!='undefined') /* IE6までは実行させない処理を書く */

ブラウザはFirefox、Google Chrome、Internet Explorer 6/7/8/9、Operaを用いて表示を確認しました。