2012-07-30 67 views
14

我们有一个父页面,它必须在IE9标准模式下运行,执行HTML5命令。 下面我们有一个iframe,它必须以兼容模式运行(IE7/8)。如何强制iframe在标准父框架下运行怪癖

在IE9中,据我所知,iframe从parent继承它们的doctype。那是对的吗? 有没有解决这个问题的方法?可以,不知何故,在标准模式doctype父框架下执行iframe的怪癖doctype? 感谢, 塔尔

+0

看到这个答案 - > http://stackoverflow.com/a/5624373/572939 – ManseUK 2012-07-30 14:41:25

+0

可能重复[在一个框架中运行怪异模式和在另一个框架中运行标准模式](http://stackoverflow.com/questions/4902255/run-quirks-模式在一个框架和标准模式在另一个) – 2012-07-30 14:41:28

+1

这些不提供答案 - 因为它强制整个页面在IE7模式下运行。所需的行为是在家长中启用IE9模式,而在iframe内部则偏离模式。 – Tal 2012-07-30 14:46:12

回答

27

这是不可能触发在IE9孩子的iframe不同的渲染模式,因为在这里正式记载:http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx(强调):

虽然较新的渲染引擎仅使用当Windows Internet Explorer检测到HTML页面请求支持标准的最高级别 时,对于可能在帧和iframe元素中加载的子页面 ,情况并非总是如此。 因为只有 一个渲染引擎可以在有效,IE9模式还包括 模拟奇怪模式。

然而,因为它说,你可以触发“怪癖模式仿真”留下的IE9渲染引擎有效,但改变其在几个方面,以配合老怪癖模式行为。

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

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

如何触发怪异模式模拟的iframe: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

+0

感谢您的回应,Nick。我会在今天晚些时候或下周再看看它。 – isherwood 2013-03-22 14:19:41

+0

不幸的是,模拟怪癖模式似乎不能解决我的问题,这是:https://bugbase.adobe.com/index.cfm?event=bug&id=2928139再次感谢您的答复。我很欣赏你付出​​的努力。 +1。 – isherwood 2013-03-22 19:53:51

+0

显然,在IE10 +中,您可以在小孩中触发不同的呈现模式。请参阅http://stackoverflow.com/questions/26206688/ie11-quirks-mode-under-iframe-javascript-errors/41270772#41270772 – 2016-12-21 21:01:24

相关问题