<script> </ script>或<script />?

Dav*_* S. 12 html javascript

可能重复:
为什么自动关闭脚本标签不起作用?

我刚刚用HTML中的脚本标记找到了一个令人厌烦的行为.

我的网络服务器是nginx,我使用了FAST CGI和PHP5.我有一个page.html,看起来像这样:

<html>
  <body>
    <!-- <?php echo 'i am going to add php code here'; ?> -->
    <script type="text/javascript" src="./my/javascript1.js" />
    <script type="text/javascript" src="./my/javascript2.js" />
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果直接从Web服务器提供此页面,则java脚本运行良好.但如果它传递给PHP5,似乎只执行第一个java脚本标记.但是,如果我将脚本块更改为:

    <script type="text/javascript" src="./my/javascript1.js"></script>
    <script type="text/javascript" src="./my/javascript2.js"></script>
Run Code Online (Sandbox Code Playgroud)

一切都有效.注意到标签是如何关闭的?是的,这就是我在这里问的原因.有什么不同?他们应该具有相同的功能/意义.此外,我的网页浏览器(Chrome/IE9)收到的输出HTML是相同的,但为什么区别对待?

Guf*_*ffa 8

脚本标记需要单独的结束标记才能成为有效代码.见http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1

有些浏览器会接受自闭标签,有些浏览器会接受,而您使用的HTML版本也会影响结果.除非您使用XHTML,否则没有自闭标签.

通过PHP引擎传递文件不应该更改结果,但它可能会尝试更正不正确的脚本标记.您应该在浏览器中查看源代码以查看标记是否已更改.