0

userAgent を検出し、基本的にユーザーが使用しているブラウザーで小さな「こんにちは」メッセージを書き込む小さなスクリプトがあります。人々に見せる小さなデモに使用しています。機能検出の方が優れていることはわかっているので、心配しないでください。主にスクリプトのデモを行います。

しかし、基本的に、これを書くためのより良い方法があるかどうか疑問に思っていました:

http://jsfiddle.net/m5cVf/

簡単で楽しい小さなメッセージを表示する必要がありますが、ブラウザーごとに多数の「if」ステートメントを実行する代わりに、それらを配列に入れて、現在のブラウザーが true の場合はブラウザー名を関数に追加しますdoAlert();。回。

何かのようなもの:

var browsers = chrome,safari,mozilla;

使用中のブラウザが「true」の場合、各「if」ステートメント内に手動で追加する代わりに、これが関数に追加されます。ありがとうございました!

4

2 に答える 2

3

ブラウザーの種類を配列に格納し、それらをループして、見つかったユーザー エージェントに対してテストすることができます。このような:

http://jsfiddle.net/m5cVf/5/

var browsers = [{"testWith": "chrome", "displayName": "Google Chrome"},
                {"testWith": "safari", "displayName": "Apple Safari"},
                {"testWith": "mozilla", "displayName": "Mozilla Browser"}];

function showBrowserName(browser) {
    $('.user').text(browser);
}

$(function () {
    var userAgent = navigator.userAgent.toLowerCase();

    for (var i = 0; i < browsers.length; i++) {
        var cur = browsers[i];
        if (userAgent.indexOf(cur.testWith) > -1) {
            showBrowserName(cur.displayName);
            break;
        }
    }
});
于 2012-12-12T23:38:30.903 に答える
0

これを行う別の方法: http://jsfiddle.net/m5cVf/6/

function browser(){
    var userAgent = navigator.userAgent.toLowerCase();
    var browsers = ['chrome', 'safari', 'mozilla'];
    for(n in browsers) {
        if(userAgent.indexOf(browsers[n]) > -1){
            browserName = browsers[n];
            doAlert();
            return;
        }            
    }
}
于 2012-12-12T23:46:06.120 に答える