用jquery检测firefox浏览器

wym*_*man 13 css browser jquery

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

这是我的代码:

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

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

谢谢提前.

Jon*_*llo 29

这已在本次讨论中得到解答: 在Javascript中,如何确定我当前的浏览器是否是计算机上的Firefox与其他所有浏览器?

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

var FF = !(window.mozInnerScreenX == null);
if(FF) {
    // is firefox 
} else { 
    // not firefox 
}
Run Code Online (Sandbox Code Playgroud)

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

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

希望有所帮助


wdm*_*wdm 1

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

$.browser.version < '1.9'
Run Code Online (Sandbox Code Playgroud)

FireFox 2 应该返回 1.8...所以这会过去。

  • jQuery api 文档建议不要使用 $.browser。http://api.jquery.com/jQuery.browser/ .. 使用功能检测也比检查可能被欺骗的浏览器用户代理更好.. $.browser 测试用户代理.. jQuery api 说使用 $.支持..但在这种情况下尝试测试 window.mozInnerScreenX 是否存在.. (2认同)