反正是有,以确定是否IE8浏览器兼容性视图打开?
我似乎无法找到谷歌什么,所以我不知道如果这是一条信息可用...
你为什么问!? 我试图追查在我们的应用程序中的错误。 我拼凑通过ELMAH日志,似乎是一种趋势; 这个错误通常是由IE8抛出。 我试图回购缺陷在我的IE8的副本,但不能。 我想缩小罪魁祸首,并认为这可能是一个办法做到这一点。
反正是有,以确定是否IE8浏览器兼容性视图打开?
我似乎无法找到谷歌什么,所以我不知道如果这是一条信息可用...
你为什么问!? 我试图追查在我们的应用程序中的错误。 我拼凑通过ELMAH日志,似乎是一种趋势; 这个错误通常是由IE8抛出。 我试图回购缺陷在我的IE8的副本,但不能。 我想缩小罪魁祸首,并认为这可能是一个办法做到这一点。
在Javascript中,使用document.documentMode
见http://msdn.microsoft.com/en-us/library/cc196988%28VS.85%29.aspx了解详情。
显然IE8有一些新的特性
document.documentMode
和
document.compatMode
http://msdn.microsoft.com/en-us/library/cc196988(VS.85).aspx
检查中的userAgent的“三叉戟/ 4.0”。 它应该是本仅供IE-8。 http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/33e0ed49-11fb-4d91-857c-a35496e90075
我正在使用:
try{ JSON } catch (e){ alert("Compatibility Mode Detected") }
的JSON
对象是在定义的IE 8
,所以在IE 7
或当在Compatibility Mode
引发错误和捕获。
我喜欢这个屡试不爽,它是一条线。
为了扩大对@汤米的答案,可以使用特征检测(警报是可选的,当然,我用一个漂亮的股利或在线消息某处):
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...");
}
}
我相信它包含在用户代理字符串:
“在用户代理字符串的新标签可以检测出客户观看在兼容性视图浏览的网站。这个标签也存在于‘正常’的Internet Explorer 8的用户代理字符串。”
“在一个用户选择为您的网站兼容性视图时,您可以在‘通过使用该版本将其带回’到你想要的布局模式定位标记/ HTTP标头。新的内容价值,‘IE = EmulateIE8’,轮出在这种特殊情况支持的值和助攻榜“。
这里更多信息: http://blogs.msdn.com/ie/archive/2008/08/27/introducing-compatibility-view.aspx
在MVC / ASP Request.Browser.Version返回“7.0”无论版本时,在兼容性视图否则返回浏览器版本。
您还可以使用Request.Browser.Browser来检查它的IE浏览器
Request.Browser.Version
Request.Browser.Browser
非常简单的方法 - 按F12键,它会打开开发者工具栏。 之后的菜单,你会看到浏览器模式。 这将清楚地告诉它是在IE8模式或IE7兼容模式。
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";
}}