8

How would i check if the users browser is IE? i have this code here but it is not working.

if($.browser.msie && $.browser.version <= 9)
{
    alert('You Are Using An Outdated Browser! Switch To Chrome Or FireFox.');   
}
4

5 に答える 5

17

James Padolsey によるこの解決策を試してください。

// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie> 7 // IE8, IE9 ...
//     ie <9 // Anything less than IE9
// ----------------------------------------------------------
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;
}());

コメントには他にも興味深い解決策があります。

于 2013-02-24T21:03:31.350 に答える
11

browser was removed in 1.9.:

Description: Contains flags for the useragent, read from navigator.userAgent. We recommend against using this property; please try to use feature detection instead (see jQuery.support). jQuery.browser may be moved to a plugin in a future release of jQuery.

于 2013-02-24T21:02:12.537 に答える
6

ブラウザではなく機能をテストします。コメントで述べたように FormData を使用して必要とする場合は、チェックを次のように変更します。

if ( !("FormData" in window) ) {
   // Tell the user to use a better browser, or whatever
}
于 2013-02-24T21:15:19.203 に答える
4

MSが推奨する方法はどうですか: http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx

(そしてもちろん、UserAgent はなりすましの可能性があります... しかし、もし誰かが UserAgent をなりすましている場合、あなたは彼らがあなたのサイトで何を見るかを本当に気にしますか?)

 function getInternetExplorerVersion()
 // Returns the version of Internet Explorer or a -1
 // (indicating the use of another browser).
 {
    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.exec(ua) != null) rv = parseFloat( RegExp.$1 );
    }
    return rv;
}
于 2013-12-05T22:29:10.080 に答える
0

ただのリマインダー(質問に直接答えないと思っても); ブラウザーの検出よりも、ユーザー機能の検出の方が常に優れています。

これが Modernizr が存在する理由です。

Modernizrを使用する理由

遅れをとっているブラウザをサポートしなければならないまでは、クールな新しい Web テクノロジを利用するのはとても楽しいことです。Modernizr を使用すると、ブラウザが機能をサポートしているかどうかに関係なく、条件付きの JavaScript と CSS を簡単に記述して、それぞれの状況を処理できます。プログレッシブエンハンスメントを簡単に行うのに最適です。

したがって、次のように使用します。

Modernizr.canvas ? showGraph() : showTable();

于 2015-01-10T22:50:00.830 に答える