1

我使用 jquery v1.9.1 。我知道 jquery.browser 在 1.9 中已删除,但我必须使用它。我使用迁移插件来获取浏览器类型。它工作正常,但对于 IE(11) 和 firefox(25+),jquery.browser 显示相同的值(“Mozilla”)。如何在 $.browser 中检测 IE?

4

3 回答 3

3

请参考以下链接,它可能对您有所帮助。

http://pupunzi.open-lab.com/2013/01/16/jquery-1-9-is-out-and-browser-has-been-removed-a-fast-workaround/

于 2013-12-16T11:07:08.913 回答
2

这是因为 IE11 使用了与以前版本不同的 User-Agent 字符串,而旧的 jQuery.browser 并没有意识到这一点。实际上它比以前更谎言:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

您可以使用更可靠的工具,例如WhichBrowser

于 2013-12-16T11:06:14.710 回答
0

查看来自Stackoverflow的 Synthy 答案

var matched, browser;

    // Use of jQuery.browser is frowned upon.
    // More details: http://api.jquery.com/jQuery.browser
    // jQuery.uaMatch maintained for back-compat
    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"
        };
    };

    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;
于 2013-12-16T11:05:32.407 回答