[JS]user-agentを参照せずにIEの各バージョンを判定するシンプルなスクリプト

user-agentを参照せずに、IE6, 7, 8, 9の各バージョンを判定するスクリプトを紹介します。

スクリプトのキャプチャ

Detect IE in JS using conditional comments

スクリプトは下記のようになります。

JavaScript

var ie = (function(){
    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : undef;
}());

IEの各バージョンを判定して使う時は、下記のようになります。

IEかどうかの判定(あるいはIEのバージョンが5以下)

ie === undefined

IEが5以上であれば、バージョンの指定が可

ie === 7; // IE7

IE6以上の指定例

if (ie) {}
ie === 6 // IE6のみ
ie > 7 // IE8, IE9 ...IE8以上
ie < 9 // IE9未満

top of page

Trackback

leave your Comments

※承認制のため、即時には反映されません。
※匿名、通りすがりさんなどへの回答は控えさせていただきます。

Comments

匿名

on 2010年9月17日

div.innerHTML の中は空じゃ動きませんよー。
オリジナルの記事にはちゃんと書いてあるので、
抜けてしまったのでしょうかね。

コリス

on 2010年9月17日

シンタックスハイライター新しいのにして、まだ慣れてませんでした。
修正しました、ありがとうございます。

links for 2010-09-17 – mooco | webdesign

on 2010年9月18日

[...] [JS]user-agentを参照せずにIEの各バージョンを判定するシンプルなスクリプト | コリス (tags: ie javascript js) [...]

top of page

©2011 coliss