我们有一个必须在IE9标准模式下运行的父页面,执行HTML5命令。 在下面我们有一个必须在兼容模式下运行的iframe(IE7 / 8)。
在IE9中,据我所知,iframe从父级继承了他们的doctype。那是对的吗? 这个问题有什么解决方案吗?可以,不知何故,在标准模式doctype父框架下使用quirks doctype执行iframe? 谢谢, 塔尔
答案 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