无法在IE11中覆盖IE8兼容模式

时间:2017-05-25 20:07:53

标签: internet-explorer-11 ie8-compatibility-mode

我的目标是在IE11浏览器上支持HTML5,其用户的兼容模式设置为IE8,以支持旧版Web应用程序(例如,在企业内部网上)。我想在访问我的网站时基本上关闭兼容模式设置。

我已经阅读了S.O中描述的许多类似讨论,其中一些似乎已经解决了当时的问题。所有人似乎都指出了" X-UA兼容" META标签或类似的标题。我试过了两个。两者都没有为我工作。我包括我正在使用的测试页面,以及我的浏览器报告的响应标题(在文档模式8下运行的IE 11.916.10586.0)。

我的测试页面显示了JavaScript值document.documentMode,并且还使用IE3中没有的CSS3效果显示带有圆角边框的DIV。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Compatibility</title>
<style>
div { padding: 10px; border: 1px solid #123; border-radius: 10px }
</style>
</head>
<body>
<p>documentMode=<span id="documentMode"></span>
<p>compatMode=<span id="compatMode"></span>
<div>Rounded</div>
<script>
document.getElementById("documentMode").innerHTML=document.documentMode;
document.getElementById("compatMode").innerHTML=document.compatMode;
</script>
</body>
</html>

在IE8兼容模式的IE11浏览器上,输出目前看起来像这样:

Not rounded

“网络设置”标签报告的响应标头包括:

X-UA-Compatible: IE=edge

如果任何解决方案有效,我希望看到围绕这个词的圆形边框&#34;圆形&#34;在为documentMode 8配置的IE11浏览器中。目前,我看到了方形边框。我可以做些什么来解决这个问题(app / server)吗?

2 个答案:

答案 0 :(得分:1)

您提供的代码是正确的。 IE中的测试运行在我的机器上以IE11模式呈现。如果你在页面刷新时打开调试器,我已经遇到IE陷入文档模式的时间。

确保安装最新版本的IE也不会有什么坏处。

答案 1 :(得分:0)

如果父页面将其“X-UA兼容”模式设置为IE8,则在该页面下的IFRAME中运行的页面将继承该设置。添加元标记:

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

覆盖来自框架父级的X-UA兼容元标记。当需要时(即当父页面设置 content =“IE = 8”时,本地 content =“IE = edge”不起作用。我认为只有用于设置 IE = edge 的用例是告诉系统忽略子iframe的X-UA-Compatible元标记。

如果您的页面被强制进入 IE = 8 模式,因为用户打开了他/她的“F12开发人员工具”并手动选择了文档模式8 (IE8模式),然后,只要开发人员工具保持打开状态,该模式就会覆盖为该页面指定或继承的任何设置。关闭“F12开发人员工具”会将页面恢复为正常设置。