我有一个运行Sharepoint 2007的站点.SP 2007的主页没有DOCTYPE,因此以怪癖模式呈现。我在Sharepoint内嵌入了iframe中的另一个网站。该网站更加现代化 - HTML5 DOCTYPE和IE = Edge的X-UA兼容元。
所以,我试图了解iframe内容在各种IE浏览器中呈现的模式。
我可以告诉,在< = IE8中,父(Sharepoint)将以怪癖模式呈现,并且帧将以标准模式呈现。这就是我想要的。
然而,在IE9 +中,会发生什么?下面的参考文献似乎认为我的框架将以Quirks模式开始渲染,这将是糟糕的。如果我在Sharepoint的主人中放置一个IE-UA兼容的IE8元,那么我的iframe会给我标准模式吗?
编辑:在IE10中,我测试了父级的各种配置(使用doctype和没有,以及各种metas),并得到了这些结果:
一些有用的链接:
IE有时会让我想跳下桥。答案 0 :(得分:2)
iframe将以与包含页面相同的模式呈现,无论是否有任何元标记或doctype设置。当使用开发工具手动更改文档或浏览器模式时,我也注意到了混合结果,所以不要依赖它。如果您想要超级安全,请在更改文档模式时加载新的浏览器选项卡 - 我不相信它!
我做的这个快速页面会为您提供您所追求的兼容性信息:http://stevesspace.com/test/quirks/modern.html
<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<title>Inner page</title>
<style>
.pass
{
color: green;
}
.fail
{
color: red;
font-weight: bold;
}
#quirks-mode
{
color: #fff;
color: f00;
}
#not-quirks-mode
{
color: green;
color: fff;
}
</style>
</head>
<body>
<div>Quirks Mode: <span id="quirks-mode">true</span><span id="not-quirks-mode">false</span></div>
<div>Javascript: <span id="scripts-enabled" class="fail">false</span></div>
<div>Array map support: <span id="array-map" class="fail">false</span></div>
<hr />
<div>Doc Mode: <span id="doc-mode"></span></div>
<div>Compat Mode: <span id="compat-mode"></span></div>
<hr />
<div>SVG Circle should render below</div>
<svg>
<circle cx="50" cy="50" r="50" style="fill: green;"/>
</svg>
</body>
<script type="text/javascript">
document.getElementById('doc-mode').innerHTML += document.documentMode;
document.getElementById('compat-mode').innerHTML += document.compatMode;
document.getElementById('scripts-enabled').innerHTML = 'true';
document.getElementById('scripts-enabled').className = 'pass';
if (Array.prototype.map) {
document.getElementById('array-map').innerHTML = 'true';
document.getElementById('array-map').className = 'pass';
}
</script>
</html>