什么是$ .browser的替代品

时间:2012-03-10 10:48:21

标签: jquery browser-detection

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

6 个答案:

答案 0 :(得分:32)

基于jQuery migration plugin,我发现了这一点。

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;
}

答案 1 :(得分:23)

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

根据docs,此功能已在 1.3 中弃用, 并在 1.9 中完全删除,但official jQuery Migrate plugin中仍然可以使用。

如果你想这样做

取决于browser detectionnot a good idea。功能检测是可行的方法(Modernizr是一个很好的工具)。 jQuery有一个$.support()方法来提供一些功能检测,但它现在也被弃用了。 They also suggest using Modernizer.

如果您确实需要浏览器检测

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

答案 2 :(得分:3)

没有直接替代品。您应该使用功能检测而不是浏览器检测(您是否有充分的理由需要了解浏览器?),因此您可以使用$.support property。 (它在{d} $.browser的API doco中说得很多。)

答案 3 :(得分:2)

答案 4 :(得分:1)

你可以使用javascript中的navigator变量

console.log(navigator)

但如果要使用jquery函数检查兼容性,可以使用支持var

$.support.ajax

答案 5 :(得分:1)

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