相同的浏览器检测代码为同一浏览器提供不同的结果

时间:2011-07-22 21:59:16

标签: jquery

我有一个简单的脚本来测试浏览器版本。我写了一个简单的独立测试页面来测试它。在IE 9上进行测试时,它会报告rigth版本9.在我的实际页面中使用的相同脚本在同一IE9浏览器上测试时会给出不同的结果。 (它提醒我7的价值。 我糊涂了。有没有人有任何见解?

<script>
if ( $.browser.msie ) {  
     alert( parseInt($.browser.version, 10) );
}
</script>

我有一个模式问题,即7及以下。我需要检查版本并做相应的操作

3 个答案:

答案 0 :(得分:2)

为什么要检测浏览器?在大多数情况下,这是非常强烈的劝阻。

最好使用jQuery.support()

要回答你的问题,IE9可能会在兼容模式下工作,它假装是一个较旧的浏览器。

您是否在网页中添加了DOCTYPE

答案 1 :(得分:0)

检查您的IE副本是否设置为标准模式,以及是否设置为模仿您的网页的旧版本之一。如果安装了IE Web工具,通常可以通过点击F12然后查看菜单栏右端的浏览器模式和文档模式来查看。可以将IE设置为模仿旧版本。

此外,您应该确保两个页面都有相同的DOCTYPE。

一般来说,检查特定浏览器并不像执行特定功能检测那样可靠。

答案 2 :(得分:0)

你想要达到什么目的?最好是检测你所追求的功能而不是a)试图检测浏览器,b)假设它做了它声称做的事情。如果您正在使用特定功能,请查看http://www.modernizr.com/

另一方面,你可以使用条件评论。

<!--[if IE 9]>

<script...


<![endif]-->