使用JavaScript检查浏览器

时间:2011-05-08 12:17:16

标签: javascript

var user = navigator.userAgent;
var browser = {};
browser.opera = user.indexOf("Opera") > -1 && typeof window.opera == "object";
browser.khtml = (user.indexOf("KHTML") > -1 || user.indexOf("AppleWebKit") > -1 || user.indexOf("Konqueror") > -1) && !browser.opera;
browser.ie = user.indexOf("MSIE") > -1 && !browser.opera;
browser.gecko = user.indexOf("Gecko") > -1 && !browser.khtml;
if ( browser.ie ) {
    var ie_reg = /MSIE (\d+\.\d+);/;
    ie_reg.test(user);
    var v = parseFloat(RegExp["$1"]);
    browser.ie55 = v <= 5.5;
    browser.ie6  = v <= 6;
}

最近,我倾向于使用JavaScript。我看到一些代码来检查浏览器,但我不能很好地遵循它。代码对我来说太难了。可以向我解释一下吗?非常感谢。

1 个答案:

答案 0 :(得分:6)

navigator.userAgent包含一个包含当前浏览器数据的字符串。

在第二行代码中,您创建一个空的browser对象。然后,根据浏览器添加truefalse的属性。例如,如果浏览器是Opera,则单词Opera位于navigator.userAgent中。 KHTML和Gecko也是如此。

要实际检查字符串是否包含某些字符/单词,您可以使用indexOf。这将返回单词开始的索引。如果它没有出现在String中,则返回-1。因此,检查> -1意味着检查它是否包含单词。

对于IE,您可以通过在navigator.userAgent上执行正则表达式来区分版本5.5和版本6。这是一种放在字符串上的形状,可以过滤掉你需要的东西。您检查解析出的版本是5.5还是6并正确存储该数据。

所以最后browser对象包含正在使用浏览器的值。