$.browser 属性用于返回用户当前使用的浏览器的相关信息,但该属性在 jQuery 1.9 版本已经被移除,所以在使用高版本 jQuery 时,浏览器就会报出 $.browser 未定义的错误提示 “$.browser is undefined”,解决该问题方法是给 $.browser 重新定义,或者在高版本 jQuery 中补充 $.browser 属性。
方法一:重定义 $.browser
因为 $.browser 是根据 navigator.userAgent 属性来确定浏览器信息的,所以在使用 $.browse 属性前添加
$.browser = navigator.userAgent;
即可。
方法二:补充 $.browser 属性。
在要使用 $.browser 属性的js代码前添加下面的代码:
jQuery.extend({
uaMatch: function( ua ) {
ua = ua.toLowerCase();
var match = rwebkit.exec( ua ) ||
ropera.exec( ua ) ||
rmsie.exec( ua ) ||
ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
[];
return { browser: match[1] || "", version: match[2] || "0" };
},
browser: function()
{
var
rwebkit = /(webkit)\/([\w.]+)/,
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
rmsie = /(msie) ([\w.]+)/,
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
browser = {},
ua = window.navigator.userAgent,
browserMatch = jQuery.uaMatch(ua);
if (browserMatch.browser) {
browser[browserMatch.browser] = true;
browser.version = browserMatch.version;
}
return { browser: browser };
},
});
PS:不建议使用该属性来检测浏览器,因为它是根据 navigator.userAgent 属性来确定浏览器信息的,因此它的识别并不一定准确。