我们有一个父页面,它必须在 IE9 标准模式下运行,执行 HTML5 命令。下面我们有一个必须在兼容模式(IE7/8)下运行的 iframe。
据我了解,在 IE9 中,iframe 从父级继承其文档类型。那是对的吗?这个问题有什么解决办法吗?可以以某种方式在标准模式 doctype 父框架下使用 quirks doctype 执行 iframe 吗?谢谢,塔尔
不可能在 IE9 中的子 iframe 中触发不同的渲染模式,如此处正式记录:http: //msdn.microsoft.com/en-us/library/gg558056 (v=vs.85).aspx (强调添加):
尽管仅当 Windows Internet Explorer 检测到 HTML 页面已请求对标准的最高级别支持时才使用较新的呈现引擎,但对于可能在 frame 和 iframe 元素中加载的子页面并不总是如此。由于一次只能激活一个渲染引擎,IE9 模式还包括对 Quirks 模式的仿真。
但是,正如它所说,您可以触发“quirks mode emulation”,这会使 IE9 渲染引擎处于活动状态,但会以多种方式改变其行为以匹配旧的 quirks 模式。
JSBin 演示:http: //jsbin.com/ozejuk/1/
此示例有一个样式为 ... 在怪癖模式下的 div,不接受background: #ff0000; background: 00ff00; border-radius: 30px
十六进制颜色。#
在 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