为什么javaogle中的“navigator.userAgent”在google chrome borwser中尝试时会返回字符串“Mozilla”?

时间:2011-08-13 12:51:15

标签: javascript navigator browserid

我正在开发一个javaScript代码,我想确定客户端浏览器的版本和品牌,这是我正在使用的代码片段:

var browserName ; 
function BrowserCheckin () 
{

    if(navigator.userAgent.indexOf("Mozilla") > 0 )
        browserName = "Mozilla" ;
    if (navigator.userAgent.indexOf("MSIE") > 0 )
        browserName = "InternetExplorer";
    if (navigator.userAgent.indexOf("Chrome") > 0)
        browserName= "Google Chrome" ; 
    if(navigator.userAgent.indexOf("Opera") > 0 ) 
        browserName = "Opera" ; 
    document.write("<h1>"  + browserName + "</h1>") ;
}

但是当我使用“Google Chrome”运行我的代码时,useAgent属性会返回一个包含以下内容的字符串:

  

“Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 534.30(KHTML,like   Gecko)Chrome / 12.0.742.112 Safari / 534.30“

但是我不知道“Mozilla / 5.0”在那里做什么,有人有什么想法吗? (还有一件事,我使用Linux作为我的操作系统)

提前致谢:)

2 个答案:

答案 0 :(得分:20)

对于historical reasons,几乎所有浏览器(Opera除外)都会将Mozilla/添加到其用户代理中。

例如,以下是一些常见的用户代理:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko)
            Chrome/12.0.742.112 Safari/534.30                    # Chrome 12
Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0                # FF 5
Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)        # IE 9
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.8.119 Version/11.10  # Opera 11.10

有关详细列表,请参阅online databases

答案 1 :(得分:2)

是Chrome的用户代理字符串。由于历史原因,它的名称中有Mozilla。甚至更有趣的是当你在Internet Explorer的用户代理字符串中看到Mozilla时:)

此链接包含Chrome的UA字符串,您可能会觉得它非常有用:http://www.useragentstring.com/pages/Chrome/