HTML中的空脚本标签有什么用?

时间:2016-03-18 18:14:32

标签: javascript html html5

要在HTML页面中包含外部JavaScript文件,您可以使用:

<script type="text/javascript" src="images/jquery-2.2.2.js"></script>

此标记的正文为空,但我必须两次输入字符串script。为什么HTML中没有XML样式的隐式结束标记,如下所示:

<script type="text/javascript" src="images/jquery-2.2.2.js" />

如果它有效(至少在HTML5中),那么如何确保每个支持HTML5(或XHTML5)的浏览器能够了解这种用法​​?

修改

我要把这个问题带到HTML WG。在src上弃用<script>属性,因为它是整个混淆的来源,有两个选项之一:

  • <link>代码而非空<script>代码:

    <link type="text/javascript" href="images/jquery-2.2.2.js" />
    

    或者可选地使用rel属性:

    <link rel="script" type="text/javascript" href="images/jquery-2.2.2.js" />
    
  • JavaScript本身的PHP风格include() :(因此始终将某些内容强制插入标记中,并允许多个脚本包含在一个{{1}中}标签)

    script

2 个答案:

答案 0 :(得分:2)

您可能不会省略script元素的结束标记。如果这样做,JavaScript运行时会将以下HTML视为JavaScript并输出错误。

唯一可以自行终止元素标记(<br />)的是IF元素,或者没有结束标记(br,link,meta)或者结束标记定义为可选(li,p)。

现在,您必须键入具有打开和结束标记的元素的原因是因为该元素 可以包含 JavaScript,使其成为内容元素即可。除非规范,否则必须始终明确关闭所有内容元素。另有说法。

  

实际上是落后的斜线&#34; /&#34;被HTML忽略   解析器。包含它的唯一好处是,如果标记是   由XML解析器解析。

因此,对于HTML解析器,它会看到:

 <script type="text/javascript" src="images/jquery-2.2.2.js" />

这样:

 <script type="text/javascript" src="images/jquery-2.2.2.js">

然后,它会认为后面的所有内容都必须是JavaScript。

答案 1 :(得分:2)