【问题标题】:Can I stop IE 8 from rendering pages in Quirks Mode when I can’t alter their HTML?当我无法更改其 HTML 时,我可以阻止 IE 8 在 Quirks 模式下呈现页面吗?
【发布时间】:2013-07-17 16:19:47
【问题描述】:

我正在公司网站内设计一个 HTML 网站,我在 IE 8 进入 Quirks 模式时遇到了严重的问题。我正在使用几个 CSS 和 Javascript 来格式化 HTML。

我在 Google 上搜索了从 Quirks 模式转移到 Internet Explorer 8 标准模式的解决方案,其中涉及添加以下行:

  1. <!DOCTYPE html> 在我的html开头
  2. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><head> 标记中。

但是,由于我的 HTML 嵌入在公司 HTML 中,而公司 HTML 以这一行开头:

<HTML xmlns:o="urn:schemas-microsoft-com:office:office" dir="ltr">

Internet Explorer 会自动启动到 Quirks 模式并重新排列我的所有格式,尽管我使用了以前的解决方案。

由于我对公司 HTML 没有任何访问/控制权,因此我无法将 &lt;!DOCTYPE html&gt; 添加到公司 HTML 的开头。

对于我的情况,有什么办法可以强制 IE8 不加载 Quirks 模式?我曾想过编写一个 C# 程序来强制将 IE8 重新加载到标准模式,但我不确定它是否有效。

【问题讨论】:

  • 一旦页面加载完毕,就无法更改文档模式。你能和某人谈谈,看看你是否可以编辑主 HTML 页面吗? C# 程序到底有什么帮助?除非您可以设置 X-UA-Compatible 标头或添加 DOCTYPE,否则您可能不走运。
  • 说服公司为其网站使用 DOCTYPE。
  • 您可以考虑使用 iframe 来显示您自己的文档/doctype
  • @RyanS:好建议。没想到:)
  • @RyanS:我现在已经是星期四了 :)

标签: html css internet-explorer-8


【解决方案1】:

如果您将文档包装在 iframe 中,它应该使用声明的 doctype 呈现该页面

您甚至可以直接链接到您自己的页面:D

<iframe src="http://mycompany.com/mypage.html"></iframe> 

【讨论】:

  • 哪个标准建议这种行为?据我所知,iframe 中的文档几乎完全独立于主机页面,并以自己的模式显示。只有 IE9 和 IE10 对具有标准模式 doctype 的页面的 iframe 中具有 quirks doctype 的页面具有特殊模式,但即使这种模式实际上也介于标准模式和 quirks 模式之间(不忽略损坏的 CSS 值,但是一些较新的 JS 功能可以工作,并且 document.documentMode 被报告为等于 IE 版本)。
  • @IlyaStreltsyn 不知道你到底在问什么,我没有任何官方消息来源,只是一种预感;)
  • 我在标准页面的 iframe 中对带有 quirks 模式 doctype 的页面的测试在这里:selenit.freeoda.com/IE9/host.htm(块的红色表示该页面处于 Quirks 模式或类似模式)。根据这个测试,我不得不说你的预感是不对的:(
  • 发现以下问题:stackoverflow.com/questions/3717932/…。根据答案,在 IE8 及以下“iframe 内的网页将根据其自己的 doctype 呈现,而不是根据父容器的 doctype”,但由于 IE9,标准页面上 iframe 中的 quirks 页面呈现在最新引擎中称为“Quirks 模式仿真”的东西。
  • @IlyaStreltsyn 该死,很高兴知道我猜。幸运的是,他们只想要 IE 8,然后我想:p
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 2011-01-23
  • 2013-01-16
  • 1970-01-01
  • 2010-10-28
  • 2011-01-20
  • 2011-02-11
  • 1970-01-01
相关资源
最近更新 更多