强制IE9进入Quirks模式?

时间:2011-02-25 22:17:44

标签: internet-explorer compatibility internet-explorer-9 ie8-compatibility-mode quirks-mode

我有一个带iframe的页面,而iframe包含需要以怪癖模式运行的代码(它是Microsoft的Outlook Web Access,因此我们无法修复我们的代码)。 IE9引入了一个“功能”,当父框架处于IE9文档模式时,它还强制任何iframe进入相同的文档模式。这打破了我们拥有iframe的代码。

我希望这是IE9中的一个错误,但我的故障单被拒绝为“按设计”(here is the ticket,如果你想看的话)

我无法以怪癖模式运行整个网站,但我只需要在此页面上进行操作。有没有办法以编程方式打开怪癖模式渲染?无论是那种,还是模仿按下“兼容性视图”按钮的方式 - 按下这几乎可以将IE9变成IE8,这也很好。

可以做这些事情吗?

3 个答案:

答案 0 :(得分:10)

我有同样的问题,并在2011年4月进行了相当广泛的研究。从那时起,在“标准模式”中获得顶级文档的唯一方法是在“quirks模式”中使用子iframe中的文档IE9使用元标记使浏览器的行为就像它是IE8一样。 (据我所知,情况仍然如此,微软无意改变它。)你可以使用各种各样的元标记来改变浏览器模式,但我使用的元标记是:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

如果包含此元标记,则应根据其doctype正确呈现所有文档(根据IE8规则)。

但请注意,这使您无法使用IE9中任何新支持的css功能,即使在顶级文档中也是如此。您将无法使用border-radius,box-shadow,opacity等。

Will an iframe render in quirks mode?上有一些关于此问题的更多信息,它会询问有关iframe和doctypes的更一般问题。

答案 1 :(得分:5)

BTW,嵌入在iframe中的内容的怪癖模式与普通的怪癖模式并不完全相同。请参阅:http://msdn.microsoft.com/en-us/library/gg558056(v=VS.85).aspx

答案 2 :(得分:-2)

您应该能够在IFrame和主机之间使用不同的比较模式 - 请参阅:http://blogs.msdn.com/b/cjacks/archive/2010/12/01/does-a-standards-web-page-inside-of-an-iframe-in-a-quirks-web-page-render-in-standards-or-quirks.aspx

您可以使用X-UA兼容标签指定您想要表达的比较模式,甚至比按钮更多:http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

HTH。