Какая замена для $.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
.)
Вы можете использовать переменную навигатор из JavaScript
console.log(navigator)
но если вы хотите проверить совместимость с функцией jquery, вы можете использовать поддержку var, как
$.support.ajax