javascript - 对于 IE6 浏览器检测,某些非 IE 浏览器显示为 true

标签 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');
}

相关问题:

最佳答案

不要使用浏览器检测。特征检测要好得多。如果你只想向 IE 6 用户显示消息或其他内容,我建议使用 conditional comments相反。

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

关于javascript - 对于 IE6 浏览器检测,某些非 IE 浏览器显示为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931729/

相关文章:

javascript - http 响应中的 Angular 奇怪行为

javascript - 如果没有匹配项,正则表达式返回 null

javascript - 一个接一个地淡入div

javascript - 如何在没有大量代码的情况下操作单个输入字段值

html - float :left and margin-left issue in ie6 and 7

css - 在网站上显示透明图像的最佳方式是什么?

javascript - Shutterstock:上传图片的API

javascript - javascript CPU 使用率过高 - 如何调试?

css - 并排 float 两个div

javascript - 当我直接点击 index.html 时,聚合物不起作用