1

テキストが長すぎると、一部のドロップダウンリストが IE のコンテンツ全体を表示しないため、次の JavaScript をページに追加しました。

$(".dropdown").mousedown(function () {
    if ($.browser.msie) {
        //Do something
    }
});

その問題を修正したので、IE9 にはその問題がないことに気付きました。では、上記のテストから IE9 以降のバージョンを除外するにはどうすればよいでしょうか?

助けてくれてありがとう

4

4 に答える 4

5
if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
    // your code here for IE < 9
}

アップデート

$.browser廃止されました。

IEコードが< 9 でのみ実行されるようにする 1 つの方法は、条件ステートメントを使用することです。

<!--[if lt IE 9]>
    <script src="path-to-js.js" type="text/javascript"></script>
<![endif]-->
于 2012-12-20T19:17:20.527 に答える
2

$.browserversion という名前の別のプロパティがあり、それを使用して、使用されているバージョンを検出します。

console.log($.browser.version)

$.browserただし、jQuery の次のバージョン (1.9 および 2.0) では使用されなくなります。

于 2012-12-20T19:18:39.953 に答える
2

ページの HEAD でこれを行うことができます。

<!--[if gt IE 8]>
<script src="myscript.js"></script>
<![endif]-->
于 2012-12-20T19:16:44.850 に答える
0

jQuery の使用:

if ($.browser.msie  && parseInt($.browser.version, 10) > 9) {
    //exclude
}

そして、純粋な Javascript での同じメソッドを次に示します。

<script>

    function getIEVersion() {
        var rv = -1; // Return value assumes failure.
        if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.test(ua) != null)
                rv = parseFloat( RegExp.$1 );
        }
        return rv;
    }


    function checkVersion() {
        var ver = getIEVersion();

        if ( ver != -1 ) {
            if (ver > 9.0) {
                // do something
            }
        }
    }

    checkVersion();

</script>

ただし、最善の方法は、UA Sniffing を使用せず、代わりにModernizrなどの機能検出を使用することです。

于 2012-12-20T19:23:34.550 に答える