有些IE浏览器没有显示IE6浏览器检测

时间:2012-01-19 19:01:33

标签: javascript jquery internet-explorer-6 browser-detection

所以我正在运行jQuery 1.3.2(是的,它已经很久了,现在我无法升级)。

问题是我正在尝试放弃对我们内部网站的IE6支持并升级浏览器。我有这张支票

if($.browser.msie && $.browser.version=="6.0") {
    // do something...
}

但是在测试期间(某些)Firefox用户看到do something条件并且不应该。以下是我认为可能导致此问题的一些用户代理。

  • UserAgent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.7(KHTML,与Gecko一样)Chrome / 16.0.912.75 Safari / 535.7
  • UserAgent:Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.2.23)Gecko / 20110920 Firefox / 3.6.23
  • UserAgent:Mozilla / 5.0(Windows NT 5.1)AppleWebKit / 535.7(KHTML,与Gecko一样)Chrome / 16.0.912.75 Safari / 535.7
  • UserAgent:Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25)Gecko / 20111212 Firefox / 3.6.25
  • UserAgent:Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12)Gecko / 20101026 Firefox / 3.6.12

我需要更多的IE6验证吗?

注意:最终用户没有安装附加组件。我认为IE-Tabs之类的东西可能导致问题,但事实并非如此

更新:

下面的所有回复都引导我这个,仍在测试,但看起来不错。关于如何改进它的任何问题?

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object";
if(typeof document.body.style.maxHeight === "undefined" && ie6) {
    alert('Your browser is IE6');
}

相关问题:

6 个答案:

答案 0 :(得分:5)

请勿使用浏览器检测。特征检测更好。如果您只想向IE 6用户显示消息或其他内容,我建议您改用conditional comments

<!--[if IE 6]>
    <script type="text/javascript">
        // do something...
    </script>
<![endif]-->

答案 1 :(得分:1)

来自jQuery Documentation

  
    

在jQuery 1.3中不推荐使用$ .browser属性,并且可以在未来的jQuery版本中将其功能移动到团队支持的插件....

         

最好尽可能完全避免特定于浏览器的代码。 $ .support属性可用于检测对特定功能的支持,而不是依赖于$ .browser。

  

您可以使用:

  1. 使用navigator object
  2. 编写客户浏览器检测器
  3. IE条件语句,类似于this

答案 2 :(得分:1)

感谢所有帮助我找到我想要的东西,也许这可能有助于其他人

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object";
if(typeof document.body.style.maxHeight === "undefined" && ie6) {
    alert('Your browser is IE6');
}

答案 3 :(得分:0)

你可以用这个: <!--[If IE 6]> Your code here <![endif]-->仅针对IE6。 http://www.unintentionallyblank.co.uk/2006/09/19/if-internet-explorer-then-do-something-else-a-how-to/

答案 4 :(得分:0)

如果你想要一行脚本来找到IE6及以下版本,你就不能使用条件注释:

if('\ v'==='v'&amp;&amp;!window.XMLHttpRequest){     // 做一点事... }

答案 5 :(得分:0)

您要做的事情是什么,需要知道浏览器是否是IE6?让我们消除它。

相关问题