用jquery检测firefox浏览器

时间:2011-04-18 05:21:07

标签: jquery css browser

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

这是我的代码:

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

但是这段代码似乎不起作用。

感谢提前。

4 个答案:

答案 0 :(得分:29)

本讨论已经回答了这个问题: In Javascript, how do I determine if my current browser is Firefox on a computer vs everything else?

要从该帖子回答您的问题,感谢“BalusC”的回答:

var FF = !(window.mozInnerScreenX == null);
if(FF) {
    // is firefox 
} else { 
    // not firefox 
}

以上帖子建议使用jQuery.browser。但是jQuery API建议不要使用这种方法..(参见DOCS in API)。

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

<强>更新

jQuery.browser现在从版本1.9的jQuery中删除

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

如果你真的需要使用它.. jQuery.browser已被移植为一个单独的jQuery插件

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

希望有所帮助

答案 1 :(得分:2)

我自己就碰到了这个问题。 $ .browser.version实际上检测到渲染引擎的版本,而不是浏览器的版本(尽管它的名字暗示),所以如果你想检测Firefox 4 以后,你应该使用

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

因为Firefox 4 使用Gecko 2.0 作为渲染引擎。这让我很困惑,我知道:)。

答案 2 :(得分:1)

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

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

  

我们建议不要使用此属性;请尝试使用功能检测(请参阅jQuery.support)。

如果您需要在Javascript中进行可靠的浏览器检测,请在线查看其中一个教程(例如this one)。

答案 3 :(得分:1)

你必须这样做......

$.browser.version < '1.9'

FireFox 2应该返回1.8 ...所以这将通过。