如何强制IE9进入怪异模式?

19
我有一个包含iframe的页面,iframe中包含需要以quirks模式运行的代码(它是Microsoft的Outlook Web Access,因此不是我们可以修复的代码)。 IE9引入了一个“功能”,即当父框架处于IE9文档模式时,它还会将任何iframe强制为相同的文档模式。这破坏了我们在iframe中的代码。
我希望这是IE9中的错误,但是我的工单被拒绝为“按设计进行”(如果您愿意查看,这是工单
我无法在quirks模式下运行整个网站,但我需要它仅在此页面上发生。是否有一种以编程方式打开quirks模式呈现的方法? 要么,一种模拟按下“兼容性视图”按钮的方法 - 按下此按钮基本上将IE9变成IE8,这也可以正常工作。
这些事情有可能做到吗?
3个回答

10
我曾经遇到和你相同的问题,并在2011年4月进行了广泛的研究。截至当时,在IE9中,要想在“标准模式”下拥有一个顶级文档和一个在子iframe中的“怪异模式”文档,唯一的方法是使用一个meta标签,让浏览器表现得像IE8。(据我所知,这仍然是事实,并且微软没有意图改变它。)有各种各样的meta标签可用于更改浏览器模式,但我使用过并且有效的是:
<meta http-equiv="X-UA-Compatible" content="IE=8" />

如果您包含此元标记,则所有文档都应根据其文档类型正确呈现(根据IE8规则)。但请注意,这将使您无法在IE9中使用任何新支持的CSS功能,即使在顶级文档中也是如此。您将无法使用border-radius、box-shadow、opacity等功能。有关此信息的更多信息,请参见一个iframe会以怪异模式渲染吗?,该页面提出了关于iframes和ie中doctype的更一般性问题。

1
是的,这就是我们最终采用的解决方案。它有点糟糕,但确实可以工作。 - FiniteLooper
重新启动一个非常古老的线程,但是这个元标记放在顶级文档的头部,对吗?我有一个类似的情况,我无法控制 quirk-y iFrame 内呈现的内容,但可以完全控制顶级文档。谢谢! - Rishi

5

-2

2
这就是关键所在。我本来是可以的,但是他们在IE9中进行了更改。现在它会强制将父页面的兼容模式应用于任何子iframe。 - FiniteLooper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接