我有一个小脚本可以检测到userAgent,并且基本上会在用户正在使用的浏览器中写一条小的“hello”消息。我正在使用它进行小型演示,我将向人们展示,我知道功能检测更好,所以不要担心。它主要用于演示脚本。
但基本上,我想知道是否有更好的方法来写这个:
我需要显示一个快速有趣的小消息,但我没有为每个浏览器执行大量的'if'语句,我想将它们放在数组中,如果当前浏览器为true,则将浏览器名称添加到函数中,而不是而不是多次致电doAlert();
。
类似的东西:
var browsers = chrome,safari,mozilla;
然后,如果使用的浏览器为“true”,则会将其添加到函数中,而不是在每个“if”语句中手动添加它们。谢谢,非常感谢!
答案 0 :(得分:3)
您可以将浏览器类型存储在数组中,循环遍历它们,并针对找到的用户代理测试它们。像这样:
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;
}
}
}