查找浏览器类型&版?

时间:2011-06-28 10:27:56

标签: jquery browser-detection

任何人都知道找到类型和类型的好方法。使用JavaScript / jQuery在客户端上安装的浏览器版本?

看起来jQuery有一些内置函数,但它在检测Chrome时遇到了问题。这样做还有其他可靠的方法吗?

3 个答案:

答案 0 :(得分:8)

如果您想了解访问者使用的浏览器信息,并将其用于统计信息或向用户显示信息,则可以使用jQuery Browser Plugin

  

它在javascript中为您提供了一个对象   包含所有信息   关于正在使用的浏览器。

当您想要确定浏览器中是否有某个功能,应用错误修正等时,请务必do feature detection而不是浏览器检测。

无需重新发明轮子。

答案 1 :(得分:7)

方法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!');
}

答案 2 :(得分:1)

由于jQuery 1.9中删除了$.browser,因此请使用:

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

}());