why Does "navigator.userAgent" in javaScript returns the String "Mozilla" when tried in a google chrome borwser?

user633784 picture user633784 · Aug 13, 2011 · Viewed 21.7k times · Source

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 :)

Answer

phihag picture phihag · Aug 13, 2011

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.