为什么会这样?
< script type =“text / javascript”src =“〜/ scripts / json2.js”>< / script>
和
< script type =“text / javascript”src =“〜/ scripts / json2.js”/>
是不同的
后一种形式似乎没有加载,如果我用第一种方式替换它确实可以正常工作。
答案 0 :(得分:3)
在XML中<foo></foo>
和<foo/>
意味着完全相同的事情。因此,在XHTML文档中(如果它被解释为XML),它们之间没有区别。
在SGML中,他们没有。
HTML在历史上被设计为SGML应用程序(并且早于XML)。浏览器已经实现了它们的解析器(虽然它们不是完整的SGML解析器,并且一些有效的语法处理不当)。
当您使用text / html Content-Type向浏览器提供文档时,它会将其解释为HTML。
因此 <script/>
被视为需要结束标记的元素的开始标记。
在编写HTML兼容的XHTML(即作为text / html提供的XHTML)时,指南建议将定义为EMPTY(因此禁止结束标记)的元素表示为<foo/>
和所有其他元素表示为<foo></foo>
。
由于<script>
元素可以包含内容(内联脚本),因此不禁止结束标记,因此需要显式结束标记。
答案 1 :(得分:0)
可能因为不是一个单一的标签(我忘了它们被称为),如BR或HR。脚本标签始终需要打开和关闭。