2011-06-28 10 views
7

Ktoś wie o dobrym i niezawodnym sposobie sprawdzenia wersji przeglądarki zainstalowanej na kliencie za pomocą JavaScript/jQuery?Znajdź typ i wersję przeglądarki?

Wygląda na to, że jQuery ma wbudowane funkcje, ale ma problemy z wykryciem przeglądarki Chrome. Jakikolwiek inny niezawodny sposób robienia tego?

+1

Wykrywanie jakiego powodu? – Gareth

Odpowiedz

8

Jeśli chcesz uzyskać informacje o przeglądarce, z której korzysta odwiedzający i używać jej do statystyk lub wyświetlania informacji dla użytkownika, możesz użyć jQuery Browser Plugin.

Daje obiekt w javascript , który zawiera wszystkie informacje temat używanej przeglądarki.

Koniecznie do feature detection zamiast wykrywania przeglądarki, gdy chcemy określić, czy dana funkcja jest dostępna w przeglądarce, stosuje poprawki błędów, itp

Nie trzeba wyważać otwartych drzwi.

+0

wygląda jak wtyczka jQuery Browser najlepiej pasuje do mojej sytuacji. Dziękujemy za informacje dotyczące wykrywania funkcji. – Arjun

7

Podejście 1:
Uwaga:Od jQuery 1.3, jQuery.browser jest przestarzała

Spróbuj tego:

<!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> 

Podejście 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

A jako wygodny JsFiddle: http://jsfiddle.net/dZs7D/ – configurator

+0

Po uruchomieniu tego programu w Chrome, następujące wyniki: Informacja przeglądarki: (klucz: wartość) webkit: true wersja: 534.7 safari: prawda – Arjun

+0

Czy istnieje sposób na odróżnienie b/w chrome i safari? – Arjun

1

Od $.browser jest usuwany w jQuery 1.9, użyj tego:

// ---------------------------------------------------------- 
// 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

Trochę specyficzne dla IE. – Stephan

+0

@Alex Jeszcze bardziej niezawodny niż podsłuchiwanie agenta użytkownika. – Johan

+0

Czy możesz ukończyć swoją odpowiedź z wykrywaniem przeglądarki dla innych popularnych przeglądarek? – Stephan

Powiązane problemy