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

Lia*_*iam 2 jquery browser-detection internet-explorer-9

所以我需要检测IE 9.我知道我应该使用功能检测,但我不知道是什么功能导致了我的问题所有我知道的是,即9引起了我的问题.

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

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

那么如何检测IE 9的最佳方法呢?

Jer*_*nch 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]-->
Run Code Online (Sandbox Code Playgroud)

所以如果你只关心IE9,你可以这样做:

<!--[if IE 9]> <html class="ie9" lang="en"> <![endif]-->
Run Code Online (Sandbox Code Playgroud)

或者,遵守惯例:

<!--[if IE 9]> <html class="lt-ie10" lang="en"> <![endif]-->
Run Code Online (Sandbox Code Playgroud)

然后你的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)
 }
Run Code Online (Sandbox Code Playgroud)

  • 也许最后一个`<! - [if IE 9]> <! - > <html class ="no-js"lang ="en"> <! - <![endif] - > `,因为IE10会像其他非IE浏览器那样处理条件注释.;) (3认同)