2011-08-13 31 views
11

Im đang phát triển một mã JavaScript và tôi muốn xác định phiên bản và thương hiệu của trình duyệt của khách hàng, đây là đoạn mã tôi đang sử dụng để làm như vậy:Tại sao "navigator.userAgent" trong javaScript trả về chuỗi "Mozilla" khi thử trong một borwser của chrome của google?

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

nhưng khi tôi chạy mã của tôi sử dụng "Google Chrome", tài sản useAgent trả về một chuỗi containting:

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

Nhưng tôi không hiểu những gì mà "Mozilla/5.0" đang làm ở đó, ai cũng có ý tưởng gì?
(và một điều nữa, tôi sử dụng Linux như hệ điều hành của tôi)

Cảm ơn trước :)

+5

Bạn nên xem xét tính năng phát hiện, thay vì phát hiện trình duyệt, nếu bạn muốn bật/tắt chức năng. –

+0

@Damien_The_Unbeliever: Tôi sẽ xem xét điều đó, Bạn nói đúng :) nếu đó là câu trả lời tôi sẽ chọn nó làm câu trả lời hay nhất :) cảm ơn –

Trả lời

19

Đối historical reasons, gần như tất cả các trình duyệt (trừ Opera) thêm vào trước Mozilla/ để user agent của họ.

Ví dụ, đây là một số đại lý người dùng thông thường:

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 

Đối với một danh sách chi tiết, hãy tham khảo onlinedatabases.

+0

cảm ơn, nhanh quá, nhưng không phải vậy đối với Opera và IE. họ không có 'Mozilla /' trong userAgent của họ. –

+1

Có, họ làm –

+0

@Delan Azabani: Đó là những gì Opera cung cấp: Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.9.168 Phiên bản/11.50 –

2

Điều đó chuỗi tác nhân người dùng cho Chrome. Nó có tên Mozilla vì lý do lịch sử. Thậm chí thú vị hơn khi bạn thấy Mozilla trong chuỗi tác nhân người dùng cho Internet Explorer :)

Liên kết này có chuỗi UA cho Chrome, bạn có thể thấy nó hữu ích: http://www.useragentstring.com/pages/Chrome/.