【问题标题】:Detecting IE version not considering compatibility mode检测IE版本不考虑兼容模式
【发布时间】:2011-05-31 04:05:36
【问题描述】:

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

【问题讨论】:

    标签: internet-explorer browser-detection


    【解决方案1】:

    可以通过检查用户代理字符串在两者中检测到。请注意,浏览器可以欺骗他们的 UA 字符串,但现在这种情况比过去少了。请参阅 this article on MSDN 了解较旧的 UA 字符串。

    另请注意,IE8 在兼容模式和标准模式下发送不同的 UA 字符串(请参阅 thisthis - 两者都是 IE8,尽管前者说的是 MSIE 7.0)。

    有关 UA 字符串的长列表,请参阅 this - 请注意,您应该寻找一种模式,而不是完全匹配,因为安装的软件会修改 UA 字符串。

    IE9 有一些新的 UA 字符串 - see the IEBlog for details

    总结一下(借用@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 的链接)所以:没有三叉戟 - 无论 MSIE \d.0 是什么版本。三叉戟 4.0 - MSIE8。三叉戟 5.0 - MSIE 9.
    • 寻找 Trident 令牌。 “三叉戟/5.0”== IE9。 “三叉戟/4.0” == IE8。
    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 2012-03-27
    • 1970-01-01
    • 2014-08-01
    • 2018-12-26
    • 1970-01-01
    • 2013-01-25
    • 2011-10-02
    相关资源
    最近更新 更多