2

したがって、IE 9 を検出する必要があります。機能検出を実際に使用する必要があることはわかっていますが、どの機能が問題を引き起こしているのかわかりません。Ie 9 が問題を引き起こしていることだけがわかっています。

私は自分の問題を回避しています (興味のある人のために、ここで問題について質問しましたが、実際には関係ありません)。

これが頭痛の原因であるため、IE9のみにこのハック修正を実装したいと思います。

では、IE 9 を検出する最善の方法は何でしょうか?

4

2 に答える 2

5

これらの IE 条件は、key-off-of の 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 に答える