我有一个运行Sharepoint 2007的网站。SP 2007的母版页没有DOCTYPE,因此在古怪模式下呈现。我有另一个网站嵌入在一个iframe内共享点。该站点更现代化-- HTML5 DOCTYPE和兼容X-UA的IE=Edge元数据。
因此,我试图了解iframe内容在各种IE浏览器中呈现的模式。
据我所知,在<= IE8中,父(Sharepoint)将以古怪模式呈现,而框架将以标准模式呈现。这就是我想要的。
然而,在IE9+中,会发生什么呢?下面的引用似乎认为我的框架将开始以古怪的模式呈现,这将是不好的。如果我把一个与IE8兼容的X-UA的元数据放在Sharepoint的主板上,这会给我标准模式回到我的iframe?
编辑:在IE10中,我测试了父级的各种配置(使用doctype和未使用,以及使用各种metas),并得到了以下结果:
一些有用的链接:
有时我想跳下桥。
发布于 2013-05-27 01:51:27
iframe将以与包含页面相同的模式呈现,而不考虑任何元标记或doctype设置。我还注意到,当使用dev工具手动更改文档或浏览器模式时,结果是混合的,所以不要依赖这种方式。如果你想变得超级安全,每当你改变文档模式时,加载一个新的浏览器选项卡--我不信任它!
我所做的这个快速页面将给您提供您想要的兼容信息: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>https://stackoverflow.com/questions/16367329
复制相似问题