2011-06-28 37 views
7

Bất cứ ai cũng biết một cách tốt và đáng tin cậy để tìm ra loại & phiên bản của trình duyệt được cài đặt trên máy khách bằng JavaScript/jQuery?Tìm loại và phiên bản Trình duyệt?

Có vẻ như jQuery có một số chức năng tích hợp sẵn nhưng vẫn gặp sự cố khi phát hiện Chrome. Bất kỳ cách nào đáng tin cậy khác để làm điều đó?

+1

Phát hiện lý do gì? – Gareth

Trả lời

8

Nếu bạn muốn thông tin về trình duyệt mà khách truy cập của bạn sử dụng và sử dụng nó để thống kê hoặc hiển thị thông tin cho người dùng, bạn có thể sử dụng jQuery Browser Plugin.

Nó cung cấp cho bạn một đối tượng trong javascript chứa tất cả thông tin về trình duyệt đang được sử dụng.

Hãy chắc chắn để do feature detection thay vì phát hiện trình duyệt khi bạn muốn xác định xem một tính năng nhất định có sẵn trong một trình duyệt, áp dụng sửa lỗi vv

Không cần phải phát minh lại bánh xe.

+0

trông giống như jQuery Browser Plugin phù hợp nhất với tình huống của tôi. Cảm ơn thông tin liên quan đến tính năng phát hiện. – Arjun

7

Cách tiếp cận 1:
Lưu ý:Kể từ JQuery 1.3, jQuery.browser bị phản

Hãy thử điều này:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
p { color:green; font-weight:bolder; margin:3px 0 0 10px; } 
div { color:blue; margin-left:20px; font-size:14px; } 
span { color:red; } 
</style> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 

<p>Browser info: (key : value)</p> 

<script> 
    jQuery.each(jQuery.browser, function(i, val) { 
    $("<div>" + i + " : <span>" + val + "</span>") 
       .appendTo(document.body); 
    });</script> 

</body> 
</html> 

Phương pháp 2:

 

// A quick solution without using regexp (to speed up a little). 
var userAgent = navigator.userAgent.toString().toLowerCase(); 
if ((userAgent.indexOf('safari') != -1) && !(userAgent.indexOf('chrome') != -1)) { 
alert('We should be on Safari only!'); 
} 
 
+2

Và như một JsFiddle thuận tiện: http://jsfiddle.net/dZs7D/ – configurator

+0

Khi tôi chạy chương trình này trong Chrome, sau đây là kết quả: Thông tin trình duyệt: (key: value) webkit: true phiên bản: 534.7 safari: true – Arjun

+0

Có cách nào để phân biệt b/w chrome và safari không? – Arjun

1

Kể từ $.browser được lấy ra trong jQuery 1.9, sử dụng này:

// ---------------------------------------------------------- 
// A short snippet for detecting versions of IE in JavaScript 
// without resorting to user-agent sniffing 
// ---------------------------------------------------------- 
// If you're not in IE (or IE version is less than 5) then: 
//  ie === undefined 
// If you're in IE (>=5) then you can determine which version: 
//  ie === 7; // IE7 
// Thus, to detect IE: 
//  if (ie) {} 
// And to detect the version: 
//  ie === 6 // IE6 
//  ie > 7 // IE8, IE9 ... 
//  ie < 9 // Anything less than IE9 
// ---------------------------------------------------------- 

// UPDATE: Now using Live NodeList idea from @jdalton 

var ie = (function(){ 

    var undef, 
     v = 3, 
     div = document.createElement('div'), 
     all = div.getElementsByTagName('i'); 

    while (
     div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', 
     all[0] 
    ); 

    return v > 4 ? v : undef; 

}()); 
+0

Một chút cụ thể đối với IE. – Stephan

+0

@Alex Vẫn đáng tin cậy hơn so với tác nhân người dùng đánh hơi. – Johan

+0

Bạn có thể hoàn thành câu trả lời của mình bằng cách phát hiện trình duyệt cho các trình duyệt chính khác không? – Stephan

Các vấn đề liên quan