如何强制Iframe在标准父框架下运行怪癖

时间:2012-07-30 14:37:39

标签: html html5 iframe

我们有一个必须在IE9标准模式下运行的父页面,执行HTML5命令。 在下面我们有一个必须在兼容模式下运行的iframe(IE7 / 8)。

在IE9中,据我所知,iframe从父级继承了他们的doctype。那是对的吗? 这个问题有什么解决方案吗?可以,不知何故,在标准模式doctype父框架下使用quirks doctype执行iframe? 谢谢, 塔尔

1 个答案:

答案 0 :(得分:27)

不可能在IE9中的子iframe中触发不同的渲染模式,正如此处正式记录的那样:http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx(强调添加):

  

虽然较新的渲染引擎仅用于Windows Internet   资源管理器检测到HTML页面已请求最高级别   对于标准的支持,对于子页面来说并非总是如此   可能会在frame和iframe元素中加载。 因为只有   一个渲染引擎一次可以激活 ,IE9模式还包括   模拟Quirks模式。

然而,正如它所说,可以触发“quirks mode emulation”,这会让IE9呈现引擎保持活动状态,但会以几种方式改变其行为以匹配旧怪癖模式。

JSBin演示:http://jsbin.com/ozejuk/1/

此示例的样式为background: #ff0000; background: 00ff00; border-radius: 30px的div ...在怪癖模式下,不接受#的十六进制颜色。在IE9模式下,它们不是。在IE9中加载演示将在父页面中显示一个红色div,在iframe中显示一个绿色div(但仍有圆角)。

如何在iframe中触发quirks模式模拟:http://msdn.microsoft.com/en-us/library/gg558096(v=vs.85).aspx

简短版:省略DOCTYPE,添加:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

效果怪癖模式仿真的完整列表有渲染:http://msdn.microsoft.com/en-us/library/gg558047(v=vs.85).aspx