Найти тип и версию браузера? - PullRequest
7 голосов
/ 28 июня 2011

Кто-нибудь знает хороший и надежный способ узнать тип и версию браузера, установленного на клиенте, либо с помощью JavaScript / jQuery?

Похоже, в jQuery есть некоторые встроенные функции, но возникают проблемы с обнаружением Chrome.Любой другой надежный способ сделать это?

Ответы [ 3 ]

8 голосов
/ 28 июня 2011

Если вы хотите получить информацию о браузере, которую использует ваш посетитель, и использовать ее для статистики или отображения информации для пользователя, вы можете использовать jQuery Browser Plugin .

Он дает вам объект в javascript, который содержит всю информацию об используемом браузере.

Обязательно выполните обнаружение функции вместо обнаружения браузера, когда вы хотите определить,определенная функция доступна в браузере, применяет исправления и т. д.

Нет необходимости заново изобретать колесо.

7 голосов
/ 28 июня 2011

Подход 1:
Примечание: Начиная с JQuery 1.3, jQuery.browser устарел

Попробуйте это:

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

Подход 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!');
}

1 голос
/ 12 июня 2013

Поскольку $.browser удалено в jQuery 1.9, используйте это:

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

}());
...