我遇到问题是当firefox低于2.0时我的css有一些bug。 我想检测浏览器来修复我的css bug。
这是我的代码:
$(document).ready (
function() {
if ( $.browser.mozilla == true && $.browser.version < '3.0' ) {
$('img.frameMargin').css('margin-left','35px');
}
}
);
但是这段代码似乎不起作用。
感谢提前。
答案 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 ...所以这将通过。