【发布时间】:2011-07-18 08:55:30
【问题描述】:
【问题讨论】:
-
查看this question 获得 96+ 票的答案。
-
抱歉,我没有意识到这是重复的。我投票关闭它。
标签: javascript
【问题讨论】:
标签: javascript
在 XML 中,<foo></foo> 和 <foo/> 的含义完全相同。所以在一个 XHTML 文档中(如果它被解释为 XML),它们之间没有区别。
在 SGML 中,它们没有。
HTML 在历史上被设计为 SGML 应用程序(并且早于 XML)。浏览器在实现它们的解析器时考虑到了这一点(尽管它们不是完整的 SGML 解析器并且一些有效的语法被错误地处理了)。
当您使用 text/html Content-Type 向浏览器提供文档时,它会将其解释为 HTML。
因此 <script/> 被视为需要结束标记的元素的开始标记。
在编写与 HTML 兼容的 XHTML(即用作文本/html 的 XHTML)时,指南建议将定义为 EMPTY 的元素(因此禁止结束标记)表示为 <foo/>,而所有其他元素都表示为作为<foo></foo>。
由于<script> 元素可以有内容(内联脚本),所以不禁止结束标记,因此需要显式结束标记。
【讨论】:
可能是因为它不像 BR 或 HR 那样单一的东西标签(我忘了它们叫什么了)。脚本标签总是需要打开和关闭。
【讨论】: