检测IE版本时不考虑兼容模式

3

我正在尝试确定是否可以检测您使用的IE版本,而不是文档模式。它可以是服务器端或客户端代码(无所谓),我只需要知道用户安装了哪个版本的IE。

1个回答

3
它可以通过检查用户代理字符串在两者中被检测到。请注意,浏览器可以欺骗其UA字符串,但这种情况现在比过去更少见。有关旧的UA字符串,请参见this article on MSDN
还要注意,IE8在兼容模式和标准模式下发送不同的UA字符串(请参见thisthis - 两者都是IE8,尽管前者说MSIE 7.0)。
请参见this以获取UA字符串的长列表 - 请注意,您应该寻找模式而不是精确匹配,因为安装的软件将修改UA字符串。

IE9有一些新的UA字符串 - 请查看IEBlog获取详细信息

总结一下(并借鉴@EricLaw的评论):

  • UA字符串中没有Trident - 检查版本号为MSIE [0-9].0的字符串
  • Trident/4.0 - IE 8,MSIE中的版本号不相关
  • Trident/5.0 - IE 9

@Alxandr:我认为IEBlog在这里非常清楚:“版本标记从‘MSIE 8.0’增加到‘MSIE 9.0’。Trident标记从‘Trident/4.0’增加到‘Trident/5.0’。”(将IEBlog的链接添加到答案中)。所以:没有Trident - 无论是哪个版本的MSIE \d.0。Trident 4.0 - MSIE8。Trident 5.0 - MSIE 9。 - Piskvor left the building
2
寻找三叉戟令牌。"Trident/5.0"== IE9。"Trident/4.0" == IE8。 - EricLaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接