在查看 HTML 时,IE 8 将默认文档模式设置为 IE8 标准,但它在 asp 页面上进入了 quirks 模式。
即使我使用<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
它也无济于事。
我该怎么办?
3 回答
我要做的第一件事是将相同的输出放在 HTM 文件中,然后访问它。如果你得到不同的结果,那么确实会发生一些奇怪的事情,因为我怀疑 IE8 有什么方法可以不同地对待“asp”。
顺便说一句,你怎么知道它实际上进入了怪癖模式?
如果您像这样使用更强大的 DTD 会发生什么:-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
它仍然处于怪癖模式吗?
您不会混淆 IE7 与 Quirksmode 的兼容性吧?
IE7 在如何呈现标准模式 HTML 方面存在许多错误,也许看到的是 IE7 兼容性。
使用 fiddler 检查与内容一起发送的标头。是否有这样的标题:-
X-UA 兼容:IE=EmulateIE7
在回应中?
浏览器 UI 中的地址旁边是否存在兼容性按钮?
唯一真正起作用的是<meta http-equiv="X-UA-Compatible" content="IE=8"/>
,其他浏览器会忽略它,但 IE 将被迫处于 IE-8 模式,除非你做了一些非常愚蠢的事情,比如在 HTML 之前放置一些东西。
我一直在编写基于标准的经典 ASP。要检查的内容是您的 HTTP 标头。确保没有将某些内容插入到您的 HTTP 标头中以使其使用怪癖模式。可能会检查您的 IIS 框以确保在 IIS 的“自定义 HTTP 标头”部分中没有发送任何内容。另外,请检查您的文档类型是否确实正确。最后,确保您没有任何可以更改呈现模式的 IE 特殊元标记。仅仅因为经典的 ASP 已经过时并不意味着浏览器会显示它与任何其他 HTML 页面不同。老实说,浏览器甚至并不关心扩展名是什么。如果它被用作 html mime 类型,那么它将呈现为这样。