首页 > 代码库 > script标签

script标签

<script />的写法

 刚刚跟着demo学习的过程中遇到了一个问题:

<script type="text/javascript" src="http://www.mamicode.com/jquery-1.1.3.pack.js" />  这样的写法貌似是不能执行的。

<script type="text/javascript" src="http://www.mamicode.com/jquery-1.1.3.pack.js" > </script> 只能这样结束。

一直不知道什么原因 一点点排除才发现的。

去百度了一下:

比如<script>标签,当前部分浏览器就不支持<script />这种在开始标签中直接关闭的写法。

我们很容易会认为,引用外部脚本文件的<script>没有内容,那是否可以直接在开始标签中关闭<script>,写成下面这样呢? <script type="text/javascript" src="http://www.mamicode.com/xxx.js" /> 实测结果告诉我们,这样做是有问题的。

某些浏览器不认这种写法,它们会将紧接在<script />标签后面的内容都当作脚本内容来处理,直到遇见下一个</script>关闭标签。

避免这个问题也很简单: 对于<script>标签,永远都使用单独的关闭标签</script>,这样所有浏览器都能够按照预期的效果来解析:

<script type="text/javascript" src="http://www.mamicode.com/xxx.js"></script>

具有类似问题的标签还有一些,比如<iframe>。解决办法同上。

进一步说,想要彻底解决这一类问题的话,请将所有标签的开始和结束都分开写吧: <img src="http://www.mamicode.com/xxx"></img> <hr></hr>

顺带一提,这样还能解决另一个问题:

在开始标签中关闭的话,斜杠前必须留有空格——很多时候人们会很容易漏掉这个空格,据说这样某些浏览器的解析也会出问题。

既然我所有的开始结束标签都分开写了,那这个问题不是自然就没有了么?

这么做太极端?那就只记住这几个特例吧:首先就是<script>和<iframe>。

目前看来,WinXP SP3下IE6/7/8和FF3都有这个问题的,Opera10/Chrome5/Safari5则没有。

不过另一个<iframe>标签同样的问题,上面这些浏览器则好像无一幸免了。

script标签