What's the replacement for $.browser

JqueryBrowser Detection

Jquery Problem Overview


The jQuery document tags $.browser as deprecated. So what's the replacement for it?

Jquery Solutions


Solution 1 - Jquery

Based on jQuery migration plugin , I found this.

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;
}

Solution 2 - Jquery

If you really need good old $.browser

According to the docs, this feature was deprecated in 1.3, and totally removed in 1.9, although it is still available in the official jQuery Migrate plugin.

If you want to do it right

Depending on browser detection is not a good idea. Feature detection is the way to go (Modernizr is a great tool for that). jQuery had a $.support() method to provide some feature detection, but it is now deprecated as well. They also suggest using Modernizer.

If you really need browser detection

Fixing browser quirks is not a valid use case for browser detection, but there are other use cases. Use any Javascript browser detection tool (like bowser), as this functionality does not depend on jQuery at all.

Solution 3 - Jquery

There isn't a direct replacement. You should be using feature detection rather than browser detection (do you have a good reason to need to know the browser?), so you can use the $.support property. (It says as much in the API doco for $.browser.)

Solution 4 - Jquery

Solution 5 - Jquery

you can use navigator variable from javascript

console.log(navigator)

but if you want to check the compatiblility with a function of jquery you can use the support var like

$.support.ajax

Solution 6 - Jquery

The jquery-browser-plugin is a good drop in replacement

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRockyView Question on Stackoverflow
Solution 1 - JquerytakienView Answer on Stackoverflow
Solution 2 - JquerykapaView Answer on Stackoverflow
Solution 3 - JquerynnnnnnView Answer on Stackoverflow
Solution 4 - JqueryEmil VikströmView Answer on Stackoverflow
Solution 5 - JquerySpidfireView Answer on Stackoverflow
Solution 6 - JqueryClausView Answer on Stackoverflow