在Javascript中加载脚本

时间:2011-03-18 17:46:40

标签: javascript

  

可能重复:
  Why don't self-closing script tags work?

为什么会这样?

< script type =“text / javascript”src =“〜/ scripts / json2.js”>< / script>

< script type =“text / javascript”src =“〜/ scripts / json2.js”/>

是不同的

后一种形式似乎没有加载,如果我用第一种方式替换它确实可以正常工作。

2 个答案:

答案 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。脚本标签始终需要打开和关闭。