【发布时间】:2017-05-25 20:07:53
【问题描述】:
我的目标是在 IE11 浏览器上支持 HTML5,这些浏览器的用户将其兼容模式设置为 IE8 以支持旧版 Web 应用程序(例如,在公司 Intranet 上)。当他们访问我的网站时,我想基本上关闭该兼容模式设置。
我已经阅读了 S.O 中描述的许多类似讨论,其中一些在当时似乎已经解决了问题。所有似乎都指向“X-UA-Compatible”META 标签或类似的标头。我都试过了。两者都没有为我工作。我包括我正在使用的测试页面,以及我的浏览器报告的响应标头(IE 11.916.10586.0 在文档模式 8 下运行)。
我的测试页面显示了 JavaScript 值 document.documentMode,并且还使用了 IE8 中不可用的 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 浏览器上的输出如下所示:
“网络设置”选项卡报告的响应标头包括:
X-UA-Compatible: IE=edge
如果任何解决方案有效,我希望在为 documentMode 8 配置的 IE11 浏览器中看到“圆形”一词周围的圆形边框。目前,我看到方形边框。我有什么办法可以在我的(应用程序/服务器)端解决这个问题吗?
【问题讨论】:
-
确保“edge”的元标记是标题中的 first 元标记。如果不是第一个,IE 会忽略它。
-
您可以在我上面包含的 HTML 源代码中看到,元标记是 head 元素中任何类型的第一个标记。
-
如果有企业设置强制 IE8 看起来像 IE8 无论如何,也许考虑像 CSS Pie 这样的 polyfill? hongkiat.com/blog/css3-border-radius-in-internet-explorer
-
谢谢,@Joy。圆角是行为上的一个小差异,旨在作为一个易于证明的示例。这是一个很好的建议,但我可能会遇到不同的问题(该站点包含第三方供应商生产的打包模块)。
标签: internet-explorer-11 ie8-compatibility-mode