0

したがって、jQuery 1.3以降、$.browser非推奨になり、「嫌われている」ことはわかっていますが、コード内で引き続き存在し、機能します。

navigator.userAgent使用されているブラウザとバージョンを判別するために、まだプレーンなjavascriptを使用しています。


ナビゲーター自体について私が知らないこれらについて何かありますか、ブラウザー/バージョン$.browserを取得するためにどちらかまたはプレーンなバニラJSを使用するべきではありませんか?私は彼らがIE8を持っているとき(例えば)、彼らが本当にそれを持っていることを確認したいだけです、そして私は間違ったコードを処理していません。


ブラウザスニッフィングには他にどのような選択肢がありますか?私は知ってい$.supportます、私は使用modernizrしていますが、ブラウザが何を処理できるかを確認するのではなく、ダウンしたダーティなブラウザバージョンが必要な場合があります(これはまったく異なる問題解決者だと思います)。

4

3 に答える 3

1

あなたは自分で質問に答えるようなものです。理想は、機能のサポートを確認することです。より多くのブラウザとデバイスが市場に登場するにつれて、このアプローチは拡張できるはずです。

ただし、「ダウンアンドダーティ」なことをしたい場合は、もちろんブラウザの検出が機能しますが、コードが既存のブラウザのセット(またはコードをテストしたブラウザ)で機能することがわかっている場合に限ります。

于 2012-09-11T15:13:29.587 に答える
1

一般に、ブラウザが何であるかを推測するのではなく、機能が使用可能かどうかを確認することをお勧めします。ブラウザとバリアントが多すぎます。

関数が使用可能かどうかを確認するには、次のようにします。

if (!Array.prototype.map) {
    // not available, shut down computer !
于 2012-09-11T15:22:33.233 に答える
0

ページ上のどのブラウザを使用するかを「知る必要がある」場合は、これを個人的に使用します。

(function() {
    var re_browsers = {
        firefox: /firefox\/([\d\.]+)/,
        chrome: /chrome\/([\d\.]+)/,
        safari: /webkit.*?version\/([\d\.]+)/,
        opera: /opera.*?version\/([\d\.]+)/,
        ie: /msie\s+([\d\.]+)/
        // ...
    };

    var ua = window.navigator.userAgent.toLowerCase(), k, re, browser = {};
    for (k in re_browsers) {
        if (re = re_browsers[k].exec(ua)) {
            break;
        }
    }
    browser[k] = true;
    browser["version"] = parseFloat(re && re[1]);
    browser["versionOrig"] = re[1];

    jQuery.extend({browser: browser});
})();
于 2013-01-16T22:27:54.380 に答える