Created
April 13, 2014 00:53
-
-
Save MiguelDebruyne/10564025 to your computer and use it in GitHub Desktop.
Javascript: Detect IE Version
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ---------------------------------------------------------- | |
// 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(){ | |
// for-loop saves characters over while | |
for( var v = 3, | |
// b just as good as a div with 2 fewer characters | |
el = document.createElement('b'), | |
// el.all instead of el.getElementsByTagName('i') | |
// empty array as loop breaker (and exception-avoider) for non-IE and IE10+ | |
all = el.all || []; | |
// i tag not well-formed since we know that IE5-IE9 won't mind | |
el.innerHTML = '<!--[if gt IE ' + (++v) + ']><i><![endif]-->', | |
all[0]; | |
); | |
// instead of undefined, returns the documentMode for IE10+ compatibility | |
// non-IE will still get undefined as before | |
return v > 4 ? v : document.documentMode; | |
}() ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment