要在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
答案 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)
根据规范(参见标签省略部分),在HTML5中省略<script>
的结束标记 是不允许的:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
https://www.w3.org/TR/html5/scripting-1.html#script
https://html.spec.whatwg.org/multipage/scripting.html#the-script-element