したがって、IE 9 を検出する必要があります。機能検出を実際に使用する必要があることはわかっていますが、どの機能が問題を引き起こしているのかわかりません。Ie 9 が問題を引き起こしていることだけがわかっています。
私は自分の問題を回避しています (興味のある人のために、ここで問題について質問しましたが、実際には関係ありません)。
これが頭痛の原因であるため、IE9のみにこのハック修正を実装したいと思います。
では、IE 9 を検出する最善の方法は何でしょうか?
これらの 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)
}
JQuery の使用 (1.8 以下)
if ( $.browser.msie && $.browser.version == 9) {
// Your code here
}