我可以区分客户端的浏览器是IE7还是例如IE9是否在IE7兼容模式下?我试图弄清楚是否可以在我的网站上进行JS检查,这将识别两种不同的东西,并根据结果做不同的事情

  • 该浏览器是IE7
  • 浏览器处于IE7兼容模式下

  • 我的第一个条件是工作正常,因为到处都说如何做到这一点。不确定第二个和/或两者的组合。

    最佳答案

    对于至少IE8和IE9,您可以检查navigator.userAgent中是否包含子字符串Trident。 IE8 + 始终的用户代理中具有Trident,而IE7则没有。参见this answerthe MSDN link in it

    IE10似乎比较棘手:在下面的评论中报告,在IE7仿真模式下Trident并非总是。如果IE10在任何支持IE7的平台上均不可用,则OS字符串(例如Windows NT 6.2)仍将显示IE10。

    另请注意,HTTP User-Agent header 可能并不总是与navigator.userAgent匹配。至少在启用兼容模式的IE9(发送IE7​​ User-Agent header )但在响应中检测到类似IE=Edge的情况下才是这种情况(navigator.userAgent返回IE9)。

    关于javascript - 区分IE7浏览器和IE7兼容模式下的浏览器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10213639/

    10-09 23:36
    查看更多