why Does “navigator.userAgent” in javaScript retur

2020-05-26 16:36发布

问题:

Im developing a javaScript code and I want to determine the version and brand of the client's browser, here's the piece of code I'm using to do so :

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>") ;
}

but when i run my code using "Google Chrome" , the useAgent property returns a string containting :

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

But I don't get what that "Mozilla/5.0" is doing there , anyone has any Idea ?
(and one more thing , I use Linux as my Operating System)

Thanks in advance :)

回答1:

For historical reasons, nearly all browsers (except Opera) prepend Mozilla/ to their user agent.

For example, here are some common user agents:

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

For a detailed list, refer to online databases.



回答2:

That is the user agent string for Chrome. It has Mozilla in the name for historical reasons. Even funnier is when you see Mozilla in the user agent string for Internet Explorer :)

This link has UA strings for Chrome, you might find it useful: http://www.useragentstring.com/pages/Chrome/.