将浏览器名称动态添加到页面中

时间:2012-12-12 23:34:54

标签: javascript jquery

我有一个小脚本可以检测到userAgent,并且基本上会在用户正在使用的浏览器中写一条小的“hello”消息。我正在使用它进行小型演示,我将向人们展示,我知道功能检测更好,所以不要担心。它主要用于演示脚本。

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

http://jsfiddle.net/m5cVf/

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

类似的东西:

var browsers = chrome,safari,mozilla;

然后,如果使用的浏览器为“true”,则会将其添加到函数中,而不是在每个“if”语句中手动添加它们。谢谢,非常感谢!

2 个答案:

答案 0 :(得分: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;
        }
    }
});

答案 1 :(得分: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;
        }            
    }
}