2011-08-13 9 views
11

Im opracowanie kodu JavaScript i chcę, aby określić wersję i markę przeglądarce klienta, oto fragment kodu używam zrobić tak:Dlaczego funkcja "navigator.userAgent" w javaScript zwraca ciąg "Mozilla", gdy jest wypróbowany w broszurze Google Chrome?

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

ale gdy uruchamiam mojego kodu za pomocą „Google Chrome”, właściwość useAgent zwraca containting wyrażenie:

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

Ale nie rozumiem, co robi ta "Mozilla/5.0", czy ktoś ma jakiś pomysł?
(i jeszcze jedno, używam Linuksa jako mój system operacyjny)

Z góry dzięki :)

+5

Jeśli chcesz włączyć lub wyłączyć funkcjonalność, powinieneś sprawdzić wykrywanie cech, a nie wykrywanie przeglądarki. –

+0

@Damien_The_Unbeliever: Zajrzę do tego, masz rację :) jeśli to była odpowiedź, wybrałbym ją jako najlepszą odpowiedź :) dziękuję –

Odpowiedz

19

Dla historical reasons, prawie wszystkie (z wyjątkiem przeglądarek Opera) poprzedzić Mozilla/ ich agenta użytkownika.

Na przykład, tutaj są pewne wspólne środki użytkownika:

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 

Szczegółowy wykaz można znaleźć w onlinedatabases.

+0

dzięki, bardzo szybko, ale nie jest tak w przypadku Opery i IE. nie mają "Mozilla /" w swojej UserAgent. –

+1

Tak, robią. –

+0

@Delan Azabani: To właśnie daje Opera: Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.9.168 Wersja/11.50 –

2

Ten jest ciągiem agenta użytkownika dla przeglądarki Chrome. Ma Mozillę w nazwie ze względów historycznych. Jeszcze śmieszniejsze jest, gdy zobaczysz Mozillę w ciągu znaków agenta użytkownika przeglądarki Internet Explorer :)

Ten link ma ciągi UA do Chrome, może się okazać przydatny: http://www.useragentstring.com/pages/Chrome/.

Powiązane problemy