在没有特征检测的情况下检测IE9

时间:2013-07-23 15:26:46

标签: jquery internet-explorer-9 browser-detection

所以我需要检测IE 9.我知道我应该真的使用feature detection但我不知道导致我的问题的是什么功能所有我知道的就是9我的问题。

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

现在我想为IE9实现这个 hack 修复,因为这是让我头痛的原因。

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

2 个答案:

答案 0 :(得分: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)
 }

答案 1 :(得分:1)

使用JQuery(1.8或更低版本)

if ( $.browser.msie && $.browser.version == 9) {
    // Your code here
}