2

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

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

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

4

5 回答 5

3

文档中$.browser

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

于 2013-02-26T16:39:59.963 回答
0
<?php 
 echo $_SERVER['HTTP_USER_AGENT'];
?> 

然后选择 case's 或 if's 或正则表达式的结果为你想要的。

于 2013-02-26T16:45:40.793 回答
0

正如您所指出的,通过 userAgent 搜索可能不可靠。但基本上,如果您不想使用特征检测,这就是您必须做的。其余的已经在这里说了

于 2013-02-26T16:48:33.133 回答
0

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

这是我将使用的函数的模型,改编自 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 功能的浏览器前缀,如果是 IE,nav.ie 是 Internet Explorer 版本的整数。

于 2013-04-13T10:33:13.803 回答
-1

您可以像这样检测 Internet Explorer:

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

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

于 2013-02-26T16:49:16.793 回答