A bizarre version of the shortest IE judge JS script
- 2020-03-30 03:05:05
- OfStack
Use conditional comment to determine the version of IE. Well, it was suggested early on, but without looking at the code. I saw it while watching CSS3 PIE yesterday. I saw Paul Irish mention it today. So, here's a recommendation. This is from the author's blog:
// ----------------------------------------------------------
// 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;
}());
Notice this while statement. It's what I find most interesting. For the comma operator. I'm not familiar with it either. I'm just stuck with things like variable definitions. Such as:
var a= 'b', c = 'd', e = 'f' ;
var obj = {
a: 'b',
c: 'd',
e: 'f'
}
Asked workmate @kangpangpang and checked the book again. Actually, this is rare. It usually returns the last value.
var a = (1,2,3,5,6,0,9,4); // a === 4
Well, that's about it. It's interesting.