使用 conditional comment 來判斷 IE 的版本。嗯,是早早有人提出,但沒有認真看程式碼。昨天剛好在看 CSS3 PIE 的時候看到,覺得是不是不太可靠。今天看到 Paul Irish 也提起,那麼,推薦一下吧。這是作者在部落格上寫的:
// -- -------------------------------------------------- ------
// 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 de detect the version:
// ie === 6 // IE6
// ie > 7 // IE8, IE9 ...
// ie
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
var undef,
v = 3,
div = 🎜>
while (
div.innerHTML = '', 0]
);
return v > 4 ? v : undef;
}());
注意一下這個 while 語句。是我覺得最有趣的。對於逗號操作符。我也不熟悉,還只是停留在像變數定義的用法上。例如:
a: 'b',
c: 'd', e: 'f'
}
問了工友@kangpangpang,再多查了一下書。其實這個比較少見。通常是傳回最後一個值。