2

如何强制我的 IE9 具有 IE9 标准的文档模式?

现在,我有这个元内容,但它似乎不起作用。

 <html>
    <head>
     <meta http-equiv="X-UA-Compatible" content="IE=9" />

另外,我怎么知道我的文档模式是否已经改变?

非常感谢你。

4

2 回答 2

4

您声明浏览器默认为 Quirks 模式。

摆脱 Quirks 模式的正确解决方案是使用 DOCTYPE。

确保您的 HTML 代码以以下行开头:

<!DOCTYPE html>

这应该是标签上方的第一行代码<html>

X-UA-Compatible标志是一件好事,但在这种情况下与您的问题无关。它告诉 IE 在各种兼容模式之间切换,但 Quirks 模式是一个完全独立的东西,由 doctype 的存在与否控制。

您应该保留该X-UA-Compatible标志,尽管正如我在评论中所说,您最好将其设置为IE=edge而不是IE=9,否则您将遇到 IE10 及更高版本的问题。

希望有帮助。

[编辑]

我们现在已经确定 OP 的站点在一个框架中运行,在另一个处于 quirks 模式的站点内。

这是一个大问题,因为 IE 会以相同的模式渲染所有帧,所以如果父站点卡在 quirks 模式,那么他的站点也会卡在 quirks 模式。

除了将一个或其他站点转换为与另一个站点相同的模式之外,几乎没有什么可以做的。

将新代码转换为以 quirks 模式运行可能是可能的,但风险很大;我强烈反对它。在任何情况下,我都需要花时间研究你的整个源代码,然后才能说出它是否可能,更不用说它有多少工作了。

将旧代码转换为在标准模式下运行可能更容易实现。同样,这取决于代码库有多大,但重点是您不必担心由于不支持的功能而导致转换中断,因为该站点已经在旧模式下运行;迁移到较新的模式可能需要进行一些更改,但至少您可以从一开始就相当确定这是可能的。

您唯一的其他选择是更改您的站点,以便它不会出现在框架中,而是弹出到自己的单独窗口(或选项卡)中。这样,它可以保持标准模式,而旧站点可以保持怪癖模式。这是您拥有的唯一不涉及大量工作的选项。

我想这一切的最终信息是怪癖模式是一件可怕的事情。如果所有以怪异模式运行的旧公司系统都升级为使用标准模式,世界将会变得更好。这确实比人们想象的要少得多,并且可以防止像这样的令人讨厌的情况。

于 2013-08-02T10:59:18.987 回答
-1

使用content="IE=edge"而不是IE=9这将迫使您的 IE 浏览器坚持最新的可用

于 2013-08-02T10:57:31.757 回答