更新:主要问题是,有没有什么会导致IE10专门在IE5怪癖模式下呈现页面(与一般的兼容模式相反),尽管有适当的doctype和x-ua兼容的元标记到位? (要明确的是,我们不希望页面在IE5中呈现怪癖,我们希望它以完整的IE10标准呈现。)
我们的页面在一个客户的IE5怪癖模式下渲染,导致渲染失败。我可以使用开发工具强制IE进入相同的模式并复制相同的失败,但为什么这会发生在他(并且只有他)的第一位?它可能是他环境中的东西,我可以在我的脑海中模拟它吗?客户正在使用IE10。
我们正在使用:
<!DOCTYPE html>
和
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
我们还要添加HTTP响应标头:
X-UA-Compatible: IE=edge,chrome=1
但我们无法验证此修复,因为它在我们自己的IE10实例中运行良好。
答案 0 :(得分:1)
许多客户提出的问题是“我如何强迫客户 浏览器在访问我们的网站时使用兼容性视图?所以 客户不必在客户端激活它。“
Web开发人员和站点管理员可以配置IIS及其 网站告诉Internet Explorer 8自动模拟Internet Explorer 7访问他们的网站或只访问特定的WebPages时。
这是通过向IIS和网站添加自定义HTTP标头来完成的 web.config或将元标记添加到特定页面。 HTTP标头是 由Internet Explorer 8解释,它将激活 兼容性视图。所有其他浏览器将忽略此自定义 HTTP标头。
X-UA-Compatible: IE=EmulateIE7
这是FORCE在兼容模式下渲染。
如果您想在兼容模式下“模拟”浏览器,用户RocketHazmat会在评论中提到要做的事情(使用工具&gt;设置)。
您可以通过以下两个博客熟悉IE8和IE9的此属性和兼容性视图模式: 介绍兼容性视图:http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx。 介绍IE9的用户代理字符串:http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx。
如果您想'检测'IE兼容性视图模式:
我觉得这个答案很有趣:JavaScript: Can I detect IE9 if it's in IE7 or IE8 compatibility mode?(document.documentMode是最好的方法)。主题on stackoverflow from a google search。
经过研究,我们可以找到用户代理字符串的值 在不同的浏览模式下:
- IE7:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; ...)
- IE8:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; Trident / 4.0; ...)
- IE8兼容性视图:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; Trident / 4.0; ...)
- IE9:Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident / 5.0)
- IE9兼容性视图:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; Trident / 5.0; ...)
请注意,字符串中的一些不相关的值会被忽略,我们只会 需要关注一些可以结合起来决定的关键价值 浏览模式,如MSIE版本NO。和三叉戟模式NO ..
这是最终的解决方案:
var agentStr = navigator.userAgent;
var mode;
if (agentStr.indexOf("Trident/5.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE9 Compatibility View";
else
mode = "IE9";
}
else if (agentStr.indexOf("Trident/4.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE8 Compatibility View";
else
mode = "IE8";
}
else
mode = "IE7";
document.title = "Browser Mode:\t" + mode;
//document.write(navigator.userAgent);
其他东西:stackoverflow.com/questions/11865188/does-the-windows-8-internet-explorer-10-still-have-quirksmode#11865561,他们解释了2 IE10的怪癖模式。与你的情况有关。希望它有所帮助。