【问题标题】:Force IE9 into Quirks mode?强制 IE9 进入 Quirks 模式?
【发布时间】:2011-02-25 22:17:43
【问题描述】:

我有一个带有 iframe 的页面,并且 iframe 包含需要在 quirks 模式下运行的代码(它是 Microsoft 的 Outlook Web Access,因此无论如何我们都无法修复它的代码)。 IE9 引入了一个“特性”,即当父框架处于 IE9 文档模式时,它也会强制任何 iframe 进入相同的文档模式。这破坏了我们拥有 iframe 的代码。

我希望这是 IE9 中的错误,但我的票被拒绝为“设计使然”(here is the ticket 如果你愿意看的话)

我不能在怪癖模式下运行整个网站,但我需要它只在这个页面上发生。有没有办法以编程方式打开怪癖模式渲染?无论是那个,还是一种模拟按下“兼容性视图”按钮的方法 - 按下这个按钮几乎可以将 IE9 转换为 IE8,它也可以正常工作。

这两种方法都可以吗?

【问题讨论】:

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


    【解决方案1】:

    我在 2011 年 4 月遇到了同样的问题并对其进行了相当广泛的研究。截至那时,在“标准模式”下拥有顶级文档和在“怪癖模式”下拥有子 iframe 中的文档的唯一方法是IE9 是使用元标记让浏览器表现得像 IE8 一样。 (据我所知,情况仍然如此,Microsoft 无意更改它。)您可以使用多种元标记来更改浏览器模式,但我使用的一个有效的是:

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

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

    但是请注意,这会阻止您使用 IE9 中的任何新支持的 css 功能,即使是在顶级文档中也是如此。您将无法使用边框半径、框阴影、不透明度等。

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

    【讨论】:

    • 是的,这就是我们最终使用的解决方案。这有点蹩脚,但它确实有效。
    • 恢复一个非常古老的线程,但是这个元标记位于顶级文档的头部,对吗?我有类似的情况,我无法控制 quirk-y iFrame 中呈现的内容,但可以完全控制顶级文档。谢谢!
    【解决方案2】:

    顺便说一句,嵌入在 iframe 中的内容的 quirks 模式与普通的 quirks 模式并不完全相同。看到这个:http://msdn.microsoft.com/en-us/library/gg558056(v=VS.85).aspx

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 这就是重点。我应该可以,但他们在 IE9 中改变了这一点。现在它将父页面的兼容模式强制到任何子 iframe。
      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2015-01-29
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2012-07-21
      相关资源
      最近更新 更多