所以我需要检测 IE 9。我知道我真的应该使用功能检测,但我不知道是什么功能导致了我的问题,我只知道 Ie 9 导致了我的问题。
我已经解决了我的问题(对于那些感兴趣的人,我在这里问了一个关于这个问题的问题,但实际上,这无关紧要)。
现在我只想为 IE9 实现这个hack修复,因为这让我很头疼。
那么检测 IE 9 的最佳方法是什么?
这些 IE 条件语句将为您提供一个 CSS 类来关闭:
<!--[if lt IE 7]> <html class="lt-ie10 lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie10 lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie10 lt-ie9" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="lt-ie10" lang="en"> <![endif]-->
<!--[if gt IE 9]><!--> <html lang="en"> <!--<![endif]-->
所以如果你只关心 IE9,你可以这样做:
<!--[if IE 9]> <html class="ie9" lang="en"> <![endif]-->
或者,为了遵守约定:
<!--[if IE 9]> <html class="lt-ie10" lang="en"> <![endif]-->
然后你的 JS(和 CSS)可以关闭 HTML.lt-ie10 选择器:
if ($('HTML.lt-ie10').length) {
//this is IE9 and older
}
else {
//this is not IE9 and older (so it could be Chrome, or Safari or IE10, etc)
}
使用 JQuery(1.8 或更低)
if ( $.browser.msie && $.browser.version == 9) {
// Your code here
}