浏览器检测现在$ .browser不再起作用了

时间:2013-02-26 16:38:15

标签: php jquery

由于$ .browser现已从jQuery 1.9中删除,我正在寻找类似的检测浏览器的方法吗?

试图使用php的get_brower,但它总是作为“默认浏览器”返回。

更新: 我查看了jquery.support,它没有向我提供任何有用的信息

5 个答案:

答案 0 :(得分:3)

来自the documentation for $.browser

  

使用特征检测(参见jQuery.support)

答案 1 :(得分:0)

<?php 
 echo $_SERVER['HTTP_USER_AGENT'];
?> 

然后选择案例或者如果是或正则表达结果你想要的结果。

答案 2 :(得分:0)

正如您所指出的那样,搜索userAgent可能并不可靠。但基本上,如果您不想使用特征检测,那么您必须要做的事情。其余的是here already

答案 3 :(得分:0)

我也错过了jQuery的$ .browser检测。虽然我理解$ .support在许多情况下更有意义,但我最初使用浏览器检测来获取css前缀属性,这在应用条件样式时更有意义,而不是使用所有3个前缀。或者甚至为IE 6-9添加-pie-前缀,这完全基于IE的版本。

这是我将要使用的函数的模型,改编自jQuery已弃用的$ .browser,如果可以帮助的话。

nav = navigation;
nav.detectBrowser = function() {
var t = this,
    a = this.userAgent.toLowerCase(),
    match = /(chrome)[ \/]([\w.]+)/.exec(a) ||
    /(webkit)[ \/]([\w.]+)/.exec(a) ||
    /(firefox)[ \/]([\w.]+)/.exec(a) ||
    /(msie) ([\w.]+)/.exec(a) ||
    /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) ||
    a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [];

t.browser = match[1] || false;
t.version = match[2] || "0";
if (t.browser) t[match[1]] = true;
if (t.msie)
    t.ie = parseInt(t.version);//ie main version or false if not IE
else if (t.chrome)
    t.webkit = true;//chrome is webkit
else if (t.webkit)
    t.safari = true;
    t.pre = t.webkit ? '-webkit-' : t.firefox ? '-moz-' : t.ie > 7
        ? '-ms-' : t.opera ? '-o-' : '';//css prefix
}
nav.detectBrowser();

注意我使用window.navigation全局对象作为示例,其中旧的$ .browser对象现在是'nav'或'window.nav'。 nav.pre是css3功能的浏览器前缀,nav.ie是Internet Explorer版本的整数,如果它是IE。

答案 4 :(得分:-1)

您可以像这样检测Internet Explorer:

<!--[if IE]>
<![endif]-->

可以使用此工具检测移动浏览器:http://detectmobilebrowsers.com/