Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
//EnhanceJS isIE test idea
//detect IE and version number through injected conditional comments (no UA detect, no need for cond. compilation / jscript check)
//version arg is for IE version (optional)
//comparison arg supports 'lte', 'gte', etc (optional)
var isIE = (function(){
var doc = document,
doc_elem = doc.documentElement,
cache = {},
return function( version, comparison ) {
var key = [ comparison || '', 'IE', version || '' ].join(' ');
if ( cache[ key ] === undefined ) {
elem = elem || doc.createElement( 'B' );
elem.innerHTML = '<!--[if '+ key +']><b id="iecctest"></b><![endif]-->';
doc_elem.appendChild( elem );
cache[ key ] = !!doc.getElementById( 'iecctest' );
doc_elem.removeChild( elem );
return cache[ key ];
// minified:
var isIE=(function(){var e=document,d=e.documentElement,a={},c;return function b(f,h){var g=[h||"","IE",f||""].join(" ");if(a[g]===undefined){c=c||e.createElement("B");c.innerHTML="<!--[if "+g+']><b id="iecctest"></b><![endif]-->';d.appendChild(c);a[g]=!!e.getElementById("iecctest");d.removeChild(c)}return a[g]}})();
// See
//is it IE?
//is it IE6?
//is it less than or equal to IE 6?

This comment has been minimized.

Copy link
Owner Author

cowboy commented Apr 6, 2010


  • results are memoized
  • only a single dom element is created
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.