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

Теги документа jQuery $.browser как устаревшие. Итак, какая замена для него?

Ответ 1

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

В соответствии с docs эта функция устарела в 1.3, и полностью удален в 1,9, хотя он по-прежнему доступен в официальном плагине jQuery Migrate .

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

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

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

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

Ответ 2

На основе плагина миграции 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;
}

Ответ 3

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

Ответ 5

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

console.log(navigator)

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

$.support.ajax