Какая замена для $.browser

Теги документа JQuery $.browser как устарел. Так какая же замена?

6 ответов

Решение

Если вам действительно нужен старый добрый $.browser

Согласно документации, эта функция устарела в 1.3, а полностью удалена в 1.9, хотя она все еще доступна в официальном плагине jQuery Migrate.

Если вы хотите сделать это правильно

В зависимости от обнаружения браузера не очень хорошая идея. Обнаружение функций - это лучший способ ( Modernizr - отличный инструмент для этого). JQuery был $.support() метод для обеспечения обнаружения некоторых функций, но это также устарело. Они также предлагают использовать Modernizer.

Если вам действительно нужно обнаружение браузера

Исправление причуд браузера не является допустимым вариантом использования для обнаружения браузера, но существуют и другие варианты использования. Используйте любой инструмент обнаружения браузера Javascript (например, Bowser), так как эта функция вообще не зависит от jQuery.

Основываясь на плагине миграции jQuery, я нашел это.

jQuery.uaMatch = function( ua ) {
    ua = ua.toLowerCase();
    var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
        /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
        /(msie) ([\w.]+)/.exec( ua ) ||
        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || [];
    return {
        browser: match[ 1 ] || "",
        version: match[ 2 ] || "0"
    };
};
if ( !jQuery.browser ) {
    var 
    matched = jQuery.uaMatch( navigator.userAgent ),
    browser = {};
    if ( matched.browser ) {
        browser[ matched.browser ] = true;
        browser.version = matched.version;
    }
    // Chrome is Webkit, but Webkit is also Safari.
    if ( browser.chrome ) {
        browser.webkit = true;
    } else if ( browser.webkit ) {
        browser.safari = true;
    }
    jQuery.browser = browser;
}

Там нет прямой замены. Вы должны использовать обнаружение функций, а не обнаружение браузера (у вас есть веская причина знать браузер?), Чтобы вы могли использовать $.support собственность(В API doco написано столько же $.browser.)

JQuery-браузер-плагин является хорошей заменой

Вы можете использовать переменную навигатор из JavaScript

console.log(navigator)

но если вы хотите проверить совместимость с функцией jquery, вы можете использовать поддержку var, как

$.support.ajax
Другие вопросы по тегам