2

所以我需要检测 IE 9。我知道我真的应该使用功能检测,但我不知道是什么功能导致了我的问题,我只知道 Ie 9 导致了我的问题。

我已经解决了我的问题(对于那些感兴趣的人,我在这里问了一个关于这个问题的问题,但实际上,这无关紧要)。

现在我只想为 IE9 实现这个hack修复,因为这让我很头疼。

那么检测 IE 9 的最佳方法是什么?

4

2 回答 2

5

这些 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)
 }
于 2013-07-23T15:29:10.523 回答
1

使用 JQuery(1.8 或更低)

if ( $.browser.msie && $.browser.version == 9) {
    // Your code here
}
于 2013-07-23T15:30:20.890 回答