Какая замена для $.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
.)
Ответ 4
jQuery.support
Ответ 5
вы можете использовать навигационную переменную из javascript
console.log(navigator)
но если вы хотите проверить совместимость с помощью функции jquery, вы можете использовать поддержку var, например
$.support.ajax
Ответ 6
jquery-browser-plugin является хорошим сокращением замены