如果从本地Intranet区域中的网站检索网页,则使用IE7模式。 - MSDN
这就是我们所发生的事情。客户端已将选项设置为“以兼容模式打开Intranet站点”。因此,我们的应用程序在IE7模式下加载。
有什么方法可以检测客户端是否在兼容模式下运行IE?
据我所知,如果浏览器处于兼容模式,那么它会向IE发送IE7用户代理字符串。所以我可以得到那个文件模式是IE7,但我无法验证它是他的原生IE7还是兼容的。
任何人都知道 如何从Apache检测确切的IE浏览器版本并检测它是处于兼容模式还是纯模式 ?
答案 0 :(得分:2)
以下是IE的用户代理字符串,用于显示兼容模式。
IE7: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1;...)
IE8: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0;...)
IE8 Compatibility View: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0;...)
IE9: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
IE9 Compatibility View: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0;...)
IE10 Compatibility View Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/6.0;...
IE11 Compatibility View : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0...)
确定在兼容模式下运行native IE7
或8
和9
的方法是IE8和IE9还包含Trident
字符串。
因此,如果您在apache中执行user_agent检查,MSIE 7.0
并且它还包含Trident/4.0
那么IE8
正在IE7 compatibility mode
中运行。
与IE9
相同。如果它同时具有MSIE 7.0
和Trident/5.0
,那么它是IE9
在IE7兼容模式下运行。
否则,user_agent字符串只有MSIE 7.0
,那么它是本机IE7。
这可能是user_agent的唯一方法。希望有所帮助。
此处有更多信息。
http://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
这里也是一个不错的清单。 http://www.useragentstring.com/pages/Internet%20Explorer/