0

我有一个小脚本,它检测 userAgent 并基本上用用户正在使用的浏览器写一个小的“你好”消息。我将它用于一个小型演示,我将向人们展示,我知道特征检测更好,所以不用担心。主要是演示脚本。

但基本上,我想知道是否有更好的方法来写这个:

http://jsfiddle.net/m5cVf/

我需要显示一个快速有趣的小消息,但我不想为每个浏览器执行大量的“if”语句,我想将它们放入数组中,如果当前浏览器为真,则将浏览器名称添加到函数中,而不是调用doAlert();多个次。

就像是:

var browsers = chrome,safari,mozilla;

那么如果正在使用的浏览器是“真”,这将被添加到函数中,而不是在每个“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 回答