我的网站上有这段代码
<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>
工作正常。
该文档被解析为HTML5。
我认为这很有趣。好的,授予一个已关闭的标签和一个自动关闭的标签不一样。所以我会理解jQuery是否无法加载(虽然我觉得它很荒谬)。
但我不明白的是,jQuery加载但是下面正确编写的标签不会?
答案 0 :(得分:53)
在HTML中,有些标签始终是自动关闭的。例如,<hr>Some content here</hr>
没有任何意义。同样,有些标签不能自动关闭。 <script>
标记就是其中之一。
我不确定没有自我关闭<script>
标签的原因,但原因可能是标签旨在始终包含内部代码。再说一遍,我不确定。
答案 1 :(得分:25)
因为它被解析为:
第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>
好的,授予一个已关闭的标签,并且自闭标签不一样。
它们是相同的(如果没有内容),但仅限于XML文档。作为application / xhtml + xml的XHTML文档是XML文档。在HTML文档中,由于浏览器不正确实现的遗留问题,自动关闭标记只是一个开始标记(因此只有在禁止结束标记时才可以)。
答案 2 :(得分:20)
David Dorward's answer从一个角度解释了这个问题,但是有一个更深层次的原因导致你无法做到这一点:
自闭语法是XML的一部分。在普通的HTML文档中,它没有任何意义。
答案 3 :(得分:3)
@Joe Hopfgartner:您是否更改了代码以测试
<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();
});