为什么<script>必须有一个单独的结束标记?

pat*_*mer 2 html theory html5

首先,我知道我必须有</script>标签,并且存在关于此的问题.问题不在于我是否需要结束标签.我的问题是:为什么这样设计?

对我来说混淆的根源来自于查看<link />元素 - 它似乎具有类似的功能(导入外部文本文件并定义其类型),但具有自闭合属性(我们在其他但不是所有元素类型中看到).我可能过分简化了事情,但我不明白为什么一个外部引用元素应该使用与另一个类似(显然不相同)的外部引用元素不同的样式.

看起来这在HTML5草案中也没有改变.我只想了解它背后的原因,这样我就可以更好/更深入地理解基本HTML,以及它为什么会这样运作.

Que*_*tin 7

为什么这样设计?

它必须具有显式结束标记,因为您可以使用内联脚本:

<script>
    foo();
</script>
Run Code Online (Sandbox Code Playgroud)

拥有禁止的结束标记是行不通的(从那时起你就没有内容).有一个可选的结束标签会更麻烦然后它是值得的(因为该元素包含CDATA ......实际上可能使得不可能有一个可选的结束标记,我不知道SGML的那一点就足够了).

它没有使用,<link>因为它是浏览器战争的产物,而不是在引入之前在W3C中讨论过的东西.

看起来这在HTML5草案中也没有改变.

它不会向后兼容.