问题
I use jquery v1.9.1 .I know that jquery.browser is removed in 1.9 but I have to use this. I using migration plugin for get type of browser. Its work fine but for IE(11) and firefox(25+) ,jquery.browser show same value("Mozilla").How to detect IE in $.browser?
回答1:
Please refer below link, it might help you.
http://pupunzi.open-lab.com/2013/01/16/jquery-1-9-is-out-and-browser-has-been-removed-a-fast-workaround/
回答2:
That's because IE11 uses different User-Agent strings from previous versions and the old jQuery.browser is not aware of it. Actually it lies more than before:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
you can use a more reliable tool like WhichBrowser.
回答3:
See Synthy answer from Stackoverflow
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;
来源:https://stackoverflow.com/questions/20609264/get-browser-name-by-jquery