jquery出现$.browser is undefined提示的解决方法

$.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 属性来确定浏览器信息的,因此它的识别并不一定准确。

关键词: jQuery