<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(); });