我怎样才能检测是否IE8在兼容性视图运行?(How can I detect if IE8 is r

2019-06-27 07:34发布

反正是有,以确定是否IE8浏览器兼容性视图打开?

我似乎无法找到谷歌什么,所以我不知道如果这是一条信息可用...

你为什么问!? 我试图追查在我们的应用程序中的错误。 我拼凑通过ELMAH日志,似乎是一种趋势; 这个错误通常是由IE8抛出。 我试图回购缺陷在我的IE8的副本,但不能。 我想缩小罪魁祸首,并认为这可能是一个办法做到这一点。

Answer 1:

在Javascript中,使用document.documentMode

见http://msdn.microsoft.com/en-us/library/cc196988%28VS.85%29.aspx了解详情。



Answer 2:

显然IE8有一些新的特性

document.documentMode

document.compatMode

http://msdn.microsoft.com/en-us/library/cc196988(VS.85).aspx



Answer 3:

检查中的userAgent的“三叉戟/ 4.0”。 它应该是本仅供IE-8。 http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/33e0ed49-11fb-4d91-857c-a35496e90075



Answer 4:

我正在使用:

try{ JSON } catch (e){ alert("Compatibility Mode Detected")  }

JSON对象是在定义的IE 8 ,所以在IE 7或当在Compatibility Mode引发错误和捕获。

我喜欢这个屡试不爽,它是一条线。



Answer 5:

为了扩大对@汤米的答案,可以使用特征检测(警报是可选的,当然,我用一个漂亮的股利或在线消息某处):

if(typeof document.documentMode !== 'undefined') { // checks if this is IE 8 or >
         if(document.documentMode < 8) {  // check if in compat mode 
             // add code here to inform user that they need to turn off compatiblity view
             alert("Click ALT-T then compat view etc...");  
         }
} 


Answer 6:

我相信它包含在用户代理字符串:

“在用户代理字符串的新标签可以检测出客户观看在兼容性视图浏览的网站。这个标签也存在于‘正常’的Internet Explorer 8的用户代理字符串。”

“在一个用户选择为您的网站兼容性视图时,您可以在‘通过使用该版本将其带回’到你想要的布局模式定位标记/ HTTP标头。新的内容价值,‘IE = EmulateIE8’,轮出在这种特殊情况支持的值和助攻榜“。

这里更多信息: http://blogs.msdn.com/ie/archive/2008/08/27/introducing-compatibility-view.aspx



Answer 7:

在MVC / ASP Request.Browser.Version返回“7.0”无论版本时,在兼容性视图否则返回浏览器版本。

您还可以使用Request.Browser.Browser来检查它的IE浏览器

Request.Browser.Version
Request.Browser.Browser


Answer 8:

非常简单的方法 - 按F12键,它会打开开发者工具栏。 之后的菜单,你会看到浏览器模式。 这将清楚地告诉它是在IE8模式或IE7兼容模式。



Answer 9:

if(preg_match('/(?i)msie/', $_SERVER['HTTP_USER_AGENT'])) {
if(preg_match('/(?i)Trident\/5/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE9";
}
elseif(preg_match('/(?i)Trident\/4/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE8";
}
elseif(!preg_match('/(?i)Trident\/4/', $_SERVER['HTTP_USER_AGENT']) AND preg_match('/(?i)msie 7/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE7";
}
elseif(preg_match('/(?i)msie [1-6]/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE1 à IE6";
}}


文章来源: How can I detect if IE8 is running in compatibility view?