【问题标题】:Run quirks mode in one frame and standards mode in another?在一帧中运行怪癖模式,在另一帧中运行标准模式?
【发布时间】:2013-03-22 13:52:29
【问题描述】:

我有一个使用框架(不是 iframe)的旧应用程序是在 IE6 时代写回的,因此它以怪异模式运行。

是否有可能(使用 IE 7 或 8)让一帧仍处于怪异模式而另一帧处于标准模式,或者整个浏览器必须处于一种模式或另一种模式?

我一直在尝试,但没有成功。

我见过this answer,它适用于 iframe,但是普通旧框架呢?

【问题讨论】:

    标签: html css quirks-mode


    【解决方案1】:

    我相信您不会获得与使用 iframe 相同的选项。正如链接问题的答案所述,iframe 中的目标不依赖于父级。在常规框架中,页面都依赖于父级。我认为您无法将类型分开。

    【讨论】:

    • 这适用于 IE8,但它不再适用于 IE9。 iframe 的 Doctype 是从父页面继承的,并且无法在 iframe 中覆盖它...
    【解决方案2】:

    我不确定这是否有帮助,但根据 Mozilla 开发中心的说法,Firefox 仅根据 doctype 做出 quirksmode 决策。

    https://developer.mozilla.org/en/Mozilla's_DOCTYPE_sniffing

    您会注意到使用旧框架集 doctype 会触发“几乎标准”模式,这可能会显示为 quirksmode。

    【讨论】:

    • 嗯。我可以从我的布局中看出这肯定是怪癖模式。
    • 我不确定“几乎是怪癖”和“怪癖”模式之间的渲染区别是什么(猜测可能更接近怪癖,因为它是为你呈现的那样),但它确实非常明确地说您不会获得带有框架集文档类型的完整标准模式。
    【解决方案3】:

    在此处查看我的答案以获得 MSDN 记录的 IE9 解决方案:How to force Iframe to run quirks under a standard parent frame

    简而言之,如果父页面在IE9模式下渲染,是不可能在一个frame(或iframe)中触发quirks模式的,但是可以触发“quirks模式”仿真” 嵌入在 IE9 渲染引擎中。

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

    延伸阅读:http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx

    【讨论】:

      【解决方案4】:

      如果您可以修改应用程序的代码(或 HTML),您可以添加一个元标记(在 head 下方),这样它会强制 IE 以 Quirks 模式呈现它,如下所示:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 2012-08-06
        • 2011-07-01
        • 1970-01-01
        • 2011-08-11
        • 2011-12-12
        • 1970-01-01
        相关资源
        最近更新 更多