什么是$ .browser的替代

jQuery文档将$.browser标记为已弃用。 那么它有什么替代呢?

如果你真的需要很好的$ .browser

根据文档 ,这个特性在1.3中被弃用,并且在1.9中完全删除,尽pipe官方的jQuery Migrate插件仍然可用。

如果你想做正确的话

根据浏览器检测 不是一个好主意 。 特征检测是要走的路( Modernizr是一个很好的工具)。 jQuery有一个$.support()方法来提供一些function检测,但现在也被弃用了。 他们还build议使用Modernizer。

如果你真的需要浏览器检测

修复浏览器的怪癖并不是浏览器检测的有效用例,但还有其他用例。 使用任何Javascript浏览器检测工具(如bowser ),因为这个function根本不依赖于jQuery。

基于jQuery迁移插件 ,我发现这一点。

 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" }; }; if ( !jQuery.browser ) { var 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; } 

没有直接替代。 您应该使用function检测而不是浏览器检测(您是否有充分的理由需要了解浏览器?),因此您可以使用$.support属性 。 (它在API的doco中对$.browser

jQuery.support

你可以使用JavaScript的导航器variables

 console.log(navigator) 

但是如果你想用jQuery的函数来检查兼容性,你可以使用类似的支持var

 $.support.ajax 

jquery-browser-plugin是一个很好的替代品