我的上一家公司,专门使用4.01 DOCTYPE,决定以
形式使用专有标签添加一些新功能<pp:foo attrOne="something" attrTwo="something else"/>
在.aspx页面中用于某些目的。一开始他们打破了很多Javascript,直到我怀疑当这些专有标签是自动关闭时,它们(在某些情况下)导致文档的其余部分被解释为该元素的子元素。 (我应该补充一点,在任何情况下我都不习惯在4.01中使用专有标签,但是这个决定是在我的工资等级之上做出的。)
根据我的预感,我建议他们将此更改为
<pp:foo attrOne="something" attrTwo="something else"></pp:foo>
所有破坏的Javascript DOM操作再次回来了。我无法在任何地方找到任何关于这种行为的参考,修复它只是我的一个幸运的猜测。我的问题是,有谁知道为什么这应该是?
答案 0 :(得分:3)
您遇到此问题是因为HTML 4.01不支持第一个示例中的自动关闭代码。
答案 1 :(得分:3)
W3C html validator给出了一些解释:
序列&lt; FOO /&gt;可 解释至少两种不同的 方式,取决于的DOCTYPE 文档。
对于HTML 4.01严格, '/'终止标签&lt; FOO(带有 暗示'&gt;') 但是,很多 浏览器不会这样解释, 即使存在HTML 4.01 严格的DOCTYPE,最好避免它 完全在纯HTML文档和 仅保留其用途 用XHTML编写。