DOCTYPE是仅与标记相关还是与DOM相关?

时间:2010-01-25 16:38:22

标签: javascript xhtml

文档的<!DOCTYPE>声明(和内容类型)保持相关的抽象级别是什么?

例如,如果我正在使用XHTML但想要使用XHTML中不可用的元素 - 一个简单的例子就是iframe - 使用JavaScript以编程方式添加元素是不好的做法?或者我是否必须不使用iframe或不使用XHTML?

验证器仍将验证文档 - 因为它不执行JS - 但修改DOM时理论上存在错误,因此它不再与<!DOCTYPE>(和返回的内容类型)一致,或<!DOCTYPE>仅在文本形式下与标记相关?

附录

更具体地说,我的问题不是<!DOCTYPE>将如何影响JavaScript或JavaScript将如何执行,而是它如何影响开发人员以编程方式添加,删除和修改元素的选择。< / p>

我的例子是,如果客户都想要XHTML合规性和WYSIWYG编辑器,你如何处理经常与WYSIWYG编辑器一起出现的iframe?你应该从标记中删除它,只在JS中document.appendChild()它吗?或者你告诉你的客户他们必须在两者之间做出选择 - iframe或XHTML?

3 个答案:

答案 0 :(得分:3)

标准术语中的DOCTYPE定义描述了标记。因此,一旦用户代理解析了标记,则DOCTYPE在这方面是无意义的 。实际上,DOCTYPE也会触发浏览器行为,因此您对DOM动态执行的操作会受到DOCTYPE的影响。

答案 1 :(得分:1)

Eesh,我明白你的意思了。如果你有一个客户认为网页没有任何好处,如果它不是XHTML,那么谈论它们可能会很棘手。

值得一试:花时间编写JavaScript来插入在XHTML中无效的元素似乎毫无意义,而不仅仅是使用允许元素的doctype。

<iframe>仍然允许在XHTML 1.0 Transitional中使用,不是吗?这是一个选择吗?

答案 2 :(得分:0)

我绝不是一个狂热的规则或标准,但是将HTML元素插入到不支持该元素的doctype中是愚蠢的,因为它可能导致一些微不足道的问题不可能调试。

所以:它可能会起作用,也没问题。 (您的老板或客户永远不会发现,因为验证器只能在基本HTML上运行)。

我仍然不建议这样做。