JQuery проверьте, является ли браузер IE

Как бы я проверил, является ли браузер пользователей IE? у меня есть этот код здесь, но он не работает.

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

5 ответов


попробовать данное решение Джеймс 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;
}());

в комментариях есть и другие интересные решения.


browser были удалены в 1.9.:

описание: содержит флаги для useragent, считанные из навигатора.userAgent. Мы рекомендуем не использовать это свойство; вместо этого попробуйте использовать обнаружение функций (см. jQuery.поддержка.) на jQuery.браузер может быть перемещен в плагин в будущем выпуске jQuery.


тест для функций, а не браузеров. Если вы используете и требуете FormData, как вы указали в своих комментариях, измените свой чек на:

if ( !("FormData" in window) ) {
   // Tell the user to use a better browser, or whatever
}

Как насчет рекомендуемого способа MS: http://msdn.microsoft.com/en-us/library/ms537509 (v=против 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. );
    }
    return rv;
}

просто напоминание (даже мысль не напрямую отвечает на вопрос); всегда лучше обнаружение пользовательских функций в противоположность для обнаружения браузера.

вот почему Modernizr существует для;

зачем использовать Modernizr?

использование прохладных новых веб-технологий очень весело, пока вам не придется поддерживать браузеры, которые отстают. Modernizr позволяет вам легко писать условные JavaScript и CSS для обработки каждой ситуации, независимо от того, поддерживает браузер функцию или нет. Он идеален для делать прогрессивное повышение легко.

таким образом, вы бы использовали его как;

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