关于CSS:使用jQuery检测Firefox浏览器

Detect firefox browser with jquery

我遇到的一个问题是,当firefox低于2.0时,我的css有一个bug。
我想检测浏览器来修复我的CSS错误。

这是我的代码:

1
2
3
4
5
6
7
$(document).ready (
 function() {
  if ( $.browser.mozilla == true && $.browser.version < '3.0' ) {
   $('img.frameMargin').css('margin-left','35px');
  }
 }
);

但是此代码似乎不起作用。

感谢前进。


在讨论中已经回答了这个问题:
使用Javascript,如何确定我当前的浏览器是计算机上的Firefox还是其他设备?

要回答该帖子中的问题,感谢" BalusC"的回答:

1
2
3
4
5
6
var FF = !(window.mozInnerScreenX == null);
if(FF) {
    // is firefox
} else {
    // not firefox
}

以上文章建议使用jQuery.browser。但是jQuery API建议不要使用此方法。(请参阅API中的DOCS)。

jQuery API建议使用'jQuery.support'(http://api.jquery.com/jQuery.support/)。
原因是jQuery.browser使用了可以被欺骗的用户代理,并且在更高版本的jQuery中实际上已弃用该代理。最好使用功能检测而不是浏览器检测。

更新:

现在从1.9版本开始将jQuery.browser从jQuery中删除

http://api.jquery.com/jQuery.browser/

如果您真的需要使用它。.jQuery.browser已作为单独的jQuery插件移植到了

https://github.com/gabceb/jquery-browser-plugin

希望有所帮助


我自己碰到了这个问题。 $ .browser.version实际上会检测渲染引擎的版本,而不是浏览器的版本(尽管其名称所隐含的含义),因此,如果要检测Firefox 4及更高版本,则应使用

1
$.browser.mozilla && $.browser.version > '2'

因为Firefox 4使用Gecko 2.0作为呈现引擎。我知道这很令人困惑:)


您将必须执行此操作...

1
$.browser.version < '1.9'

FireFox 2应该返回1.8 ...这样就可以通过。


在我的计算机(Mac OS X 10.6)上,Firefox 4中的$.browser.version报告"2.0"。因此,看起来您的代码是有效的,但是JQuery存在问题。

来自http://api.jquery.com/jQuery.browser/:

We recommend against using this property; please try to use feature detection instead (see jQuery.support).

如果您需要使用Javascript进行可靠的浏览器检测,请在线查看众多教程之一(例如本教程)。