我们正在将Web应用程序转换为IE8(现在客户端正在使用IE6)。我们没有创建该应用程序。我们只修改和添加功能。当我使用IE8开发者工具访问此应用程序中的大多数页面时,显示IE正在Quirks模式下工作。但有些页面在Internet Explorer 8标准模式下工作。这个页面http://msdn.microsoft.com/en-us/library/dd565628(VS.85).aspx说:
“Quirks Mode:在渲染没有doctype或Quirks doctype的文档时,此行为与Internet Explorer的行为相匹配。”
但是我们所有的页面都定义了DOCTYPE - !DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd“(我不知道如何在这里输入尖括号,但它们出现在网页上。
任何人都能解释一下,为什么IE8在显示所有DOCTYPE定义的页面时都在Quirks和标准模式下工作?或者可能会向我展示IE8在Quirks和标准模式下显示的两个页面示例?
答案 0 :(得分:6)
doctype标记必须是标记中的第一个,否则会被忽略。如果在doctype标记之前有XML声明标记,IE将忽略doctype。
如果HTML标记完全被破坏,浏览器可能会重新将其解释为标记汤而不是HTML文档,并以Quirks模式呈现。
使用W3C HTML validator检查代码是否有任何严重错误。
答案 1 :(得分:0)
尝试在HEX编辑器中查看HTML。在DOCTYPE声明之前可能会有一些奇怪的字符(通常是3:ef bb bf)。在这种情况下,IE也陷入了怪癖。之前发生在我身上,现在也发生了。