<script>标签是否可以自行closures?

我在我的网站上有这个代码

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"/> <script type='text/javascript' src='/lib/player/swfobject.js'></script> 

swfobject不工作(未加载)。

将代码更改为:

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> <script type='text/javascript' src='/lib/player/swfobject.js'></script> 

它工作正常。

该文件被parsing为HTML5。

我觉得很有趣 好的,授予一个closures的标签和一个自动closures的标签是不一样的。 所以我会明白,如果jQuery无法加载(虽然我觉得它荒谬)。

但我不明白的是,jQuery加载,但以下,正确书写标签,不?

在HTML中,有些标签总是自封闭的。 例如, <hr>Some content here</hr>没有任何意义。 同样,也有一些标签不能自动closures。 <script>标签就是其中之一。

我不确定没有自封闭的<script>标签的原因,但是原因可能来自这样的事实,即标签总是包含内部的代码。 再次,我不确定。

因为它被parsing为:

第1行:脚本的开始标记

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"/> 

第2行:如果第1行提到的外部脚本加载失败,则执行JavaScript(真的是断开的JavaScript!)

  <script type='text/javascript' src='/lib/player/swfobject.js'> 

第3行:在第1行开始的脚本的结束标记

 </script> 

好的,授予一个closures的标签和一个自动closures标签是不一样的。

它们是相同的(如果没有内容),但只在XML文档中。 用作application / xhtml + xml的XHTML文档是一个XML文档。 在HTML文档中,由于浏览器不当实现的遗留问题,自闭标记只是一个开始标记(因此,只有在结束标记被禁止时才可以)。

David Dorward的回答从一个angular度解释了这个问题,但是为什么你不能这样做呢?

标签末尾的斜杠不会使其在HTML中自动closures

自闭文法是XML的一部分。 在一个普通的HTML文档中,它没有任何意义。

@Joe Hopfgartner:你是否改变了代码来testing是否

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js" /> <script type="text/javascript" src="/lib/player/swfobject.js" /> 

作品? 😉

更新

运行代码并将<p>元素隐藏,所以…看起来像是有效的?

HTML

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>questions/4531772</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"/> <script type="text/javascript" src="4531772.js"/> </head> <body> <p class="test">Testing...</p> </body> </html> 

JavaScript(4531772.js)

 $(document).ready(function() { $('.test').hide(); });