代码改变世界

很有意思的判断ie浏览器

2010-08-21 17:46  wlstyle  阅读(238)  评论(0)    收藏  举报

作者博文链接:很有意思的判断ie浏览器

 代码如下:

// ----------------------------------------------------------
//
 A short snippet for detecting versions of IE in JavaScript
//
 without resorting to user-agent sniffing
//
 ----------------------------------------------------------
//
 If you're not in IE (or IE version is less than 5) then:
//
 ie === undefined
//
 If you're in IE (>=5) then you can determine which version:
//
 ie === 7; // IE7
//
 Thus, to detect IE:
//
 if (ie) {}
//
 And to detect the version:
//
 ie === 6 // IE6
//
 ie > 7 // IE8, IE9 ...
//
 ie < 9 // Anything less than IE9
//
 ----------------------------------------------------------

// UPDATE: Now using Live NodeList idea from @jdalton

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;
    
}());

主要利用点:

1.利用ie的条件注释

2.通过getElementsByTagName的HTMLCollection 是动态的。会随着dom结构中的变化而变化