Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery 1.9 - How to migrate from $.browser.msie? [duplicate]

I am updating an old project that references $.browser.msie . Moving to jQuery 1.9 of course breaks this.

How can I rewrite this code to get the same boolean value without having to include jQuery Migrate?

The code is buried deep in an old javascript library we use that needs to determine if msie is running and then works on the knowledge. We'd rather not edit the javascript too much as it's brittle.

like image 615
Ian Vink Avatar asked Dec 26 '22 22:12

Ian Vink


2 Answers

You could consider including the relevant code from jQuery 1.8 (https://github.com/jquery/jquery/blob/1.8.3/src/deprecated.js:

(function() {
    var matched, browser;

    // Use of jQuery.browser is frowned upon.
    // More details: http://api.jquery.com/jQuery.browser
    // jQuery.uaMatch maintained for back-compat
    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"
        };
    };

    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;
})();
like image 193
Trevor Dixon Avatar answered Dec 28 '22 13:12

Trevor Dixon


The jQuery.browser() method has been deprecated since jQuery 1.3 and is removed in 1.9. If needed, it is available as part of the jQuery Migrate plugin.

See also jQuery Core 1.9 Upgrade Guide

like image 31
Samuel Liew Avatar answered Dec 28 '22 11:12

Samuel Liew