Skip to content

Instantly share code, notes, and snippets.

@MiguelDebruyne
Created April 13, 2014 00:53
Show Gist options
  • Save MiguelDebruyne/10564025 to your computer and use it in GitHub Desktop.
Save MiguelDebruyne/10564025 to your computer and use it in GitHub Desktop.
Javascript: Detect IE Version
// ----------------------------------------------------------
// 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