0

我不得不将一些旧代码重新用于紧急工作,虽然代码 QA 很好,但事实证明没有声明 doctype。当我添加一个文档类型时,它会破坏 IE 中的设计。理想情况下,当不存在任何文档类型时,我将能够声明假定的任何文档类型,但不知道这是否可能。有没有一种方法可以声明一个文档类型而不改变页面创建的行为而没有声明任何文档类型?

4

3 回答 3

1

如果没有 doctype,IE 将以quirks 模式显示页面。要使 IE 使用 doctype 保持 quirks 模式,您可以<!-- -->在 doctype 之前添加注释 ( )。

编辑:如果只是 IE6 导致问题,XML prolog ( <?xml version="1.0" encoding="utf-8"?>) 将使其保持怪癖模式。

编辑 2:实际上有很多文档类型可以让 IE 保持怪癖模式。你应该能够找到一个你可以验证的。

于 2010-09-07T17:51:31.997 回答
0

我以前也遇到过类似的情况。我的建议是在执行此操作时通过 HTML 验证工具运行您的 HTML。我最喜欢的是这个:

http://validator.w3.org/

如果您需要身份验证或具有某种其他机制来访问页面(并且不能让该站点直接访问您的站点),还有一个 firefox 插件。

如果您描述的“功能”实际上是众多 IE 的“未记录功能”(错误)之一,那么您将无法使您的 HTML 标准兼容并使其继续运行。您可能有许多不符合标准的代码片段,而 IE 特定的错误处理正是使您的页面正常运行的原因。不同的浏览器以不同的方式处理错误条件(因为根据定义,错误条件超出了文档类型的范围)。

重申一下,尝试让您的 HTML 通过某种验证,然后再担心将功能添加回去。我的经验告诉我,错误情况通常会导致您所描述的这类问题。

这是我在 Web 开发中遇到的第一条规则。该页面需要验证某些特定的文档类型。

祝你好运!

-Brian J. Stinar-

于 2010-09-07T17:51:21.993 回答
0

这是不可能的,因为它会将 quirks 模式更改为标准模式(假设您使用 XHTML Transitional、HTML 4 Strict 或 HTML 5 之类的东西)并且存在很多差异,尤其是 IE。您必须解决周围的问题或雇用其他人。

于 2010-09-07T17:45:16.297 回答