这两种将javascript拉入页面的方法有什么区别?


 < script src =“foo.js”>< /脚本>



 Vs:


 < script src = “foo.js”/>



 脚本标签不会有子节点,因此无需分开开头和结束标签,对吗?就像你在表中有一个空行一样,你可以用< tr />
代替< tr>< / tr>
?还是我离开基地?
答案 0 :(得分:1)
简而言之,第一个是正确的,第二个不是,会导致您的页面无法正常呈现。
不允许script
元素自行终止。它必须具有明确的结束标记。如果省略,浏览器会认为它之后的所有内容仍然是JavaScript,而不是正确处理它。
通过这个简单的例子看看你自己。这是<script src="foo.js"/>
的第二种方法:
<!doctype html>
<html>
<head>
<script src="doesntmatter.js" />
<title>Hello</title>
</head>
<body>
<h1>Do you see me?</h1>
</body>
</html>
现在是正确的版本<script src="foo.js"></script>
:
<!doctype html>
<html>
<head>
<script src="doesntmatter.js"></script>
<title>Hello</title>
</head>
<body>
<h1>Do you see me?</h1>
</body>
</html>
<element />
的自终止(XHTML)语法只能用于空元素(禁止内容模型的元素 - 即结束标记没有为他们定义,不是可以拥有内容的元素,但你刚决定不给它任何。)
您可能不会将此语法用作为其定义了结束标记的标记的便利。
允许自终止语法的标记示例(来自MDN):
<area>
<base>
<br>
<col>
<colgroup>
<command>
<embed>
<hr>
<img>
<input>
<keygen>
<link>
<meta>
<param>
<source>
<track>
<wbr>
就个人而言,我与同伴进行了多次激烈的辩论 多年来Stack Overflow成员(就像今天一样 事实)关于使用自我终止的最佳实践 元素。
我经常听到的论点是使用它们会使代码更清晰。 但是,怎么可能因为为了使用它们,你必须知道 使用它们是可以接受的。而且,如果你知道,那么 当你看到类似
<br>
之类的东西时,代码就像你一样清楚 已经知道<br>
没有关闭!然后论证变成了,“嗯,并不是说代码更清晰 对我来说,这是为了其他人,他们可能不知道
<br>
是不应该的 关闭。“这里的反驳是,如果他们不知道 哪些标签是和不应该被关闭,他们将使用它 语法在错误的地方(这个事实毫无疑问,如证据所示 你的问题和许多其他人喜欢它!)最后一个论点是使用这种语法使代码成为有效的XML 这是构建所有HTML的好方法,以防万一 HTML需要被解析为XML。嗯,这是一个有效的观点。但, 对于大多数用例,这些天我们真的使用XHTML吗?当然,那里 可能是这仍然有意义的环境,但肯定不是 感谢JSON的主流。因此,建议将此语法作为最佳 - 实践是不合理的。
我强烈反对在非XML应用程序中使用自终止元素。使用它们什么都不买,而且正如您所见,可以引导 代码中的错误。
答案 1 :(得分:0)
第二个无效,你需要一个结束标记
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script