14

ユーザーがjQueryプラグインから古いバージョンのIE(IE9で問題ありません)を実行しているかどうかを検出する必要があるため、HTMLを制御できません。

user-agent文字列を解析して。を使用することはお勧めしません$.browser.msie。この$.support方法でも問題はカバーされません。

それで、これはうまくいくと思いましたが、それが「良い習慣」であるかどうかはわかりません。

$('body').append('<!--[if lte IE 8]><script>$("body").addClass("oldie");</script><![endif]-->');
var old_ie = $('body').is('.oldie');

この方法を使用しますか、それともユーザーエージェント文字列の解析に固執しますか(IEかどうかを判断してバージョン番号を取得する必要があります)?

4

4 に答える 4

16

あなたはこれを実行することができます

var ie = (function () {
    var undef, v = 3, div = document.createElement('div');

    while (
        div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->',
        div.getElementsByTagName('i')[0]
    );

    return v > 4 ? v : undef;
}());

IEのバージョンを検出します。

出典: http ://ajaxian.com/archives/attack-of-the-ie-conditional-comment

その後

if ( ie < 9 ) {
    // do your stuff, for instance:
    window.location = 'http://getfirefox.com'; // :p
}
于 2011-08-29T18:21:49.483 に答える
2

IE9を検出する必要がある理由について質問で明示的に言及していなかったため、一般的に次のアドバイスが当てはまります。

特定のブラウザ/バージョンを検出するのではなく、特定の機能を検出する必要があります。Modernizrは、これを支援するための開始点として適しています。

于 2011-08-29T18:22:17.137 に答える
1

これはどう:

if (!($.browser.msie && $.browser.version < 9.0)) {
    // Apply only to IE8 and lower
}

IE8はIE7として表示されることに注意してください

于 2011-11-19T04:51:04.740 に答える
1

https://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx 上記のリンクを参照してください。これは公式の回答である可能性があります:)簡単に言うと、HTMLページに次のようにコーディングします。

<!--[if gte IE 9]>
<p>You're using a recent version of Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]-->

<!--[if lt IE 9]>
<p>Hm. You should upgrade your copy of Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]-->

<![if !IE]>
<p>You're not using Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]>
于 2015-05-14T06:23:36.697 に答える