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