刚刚跟着demo学习的过程中遇到了一个问题:
<script type="text/javascript" src="jquery-1.1.3.pack.js" /> 这样的写法貌似是不能执行的。
<script type="text/javascript" src="jquery-1.1.3.pack.js" > </script> 只能这样结束。
一直不知道什么原因 一点点排除才发现的。
去百度了一下:
比如<script>标签,当前部分浏览器就不支持<script />这种在开始标签中直接关闭的写法。
我们很容易会认为,引用外部脚本文件的<script>没有内容,那是否可以直接在开始标签中关闭<script>,写成下面这样呢? <script type="text/javascript" src="xxx.js" /> 实测结果告诉我们,这样做是有问题的。
某些浏览器不认这种写法,它们会将紧接在<script />标签后面的内容都当作脚本内容来处理,直到遇见下一个</script>关闭标签。
避免这个问题也很简单: 对于<script>标签,永远都使用单独的关闭标签</script>,这样所有浏览器都能够按照预期的效果来解析:
<script type="text/javascript" src="xxx.js"></script>
具有类似问题的标签还有一些,比如<iframe>。解决办法同上。
进一步说,想要彻底解决这一类问题的话,请将所有标签的开始和结束都分开写吧: <img src="xxx"></img> <hr></hr>
顺带一提,这样还能解决另一个问题:
在开始标签中关闭的话,斜杠前必须留有空格——很多时候人们会很容易漏掉这个空格,据说这样某些浏览器的解析也会出问题。
既然我所有的开始结束标签都分开写了,那这个问题不是自然就没有了么?
这么做太极端?那就只记住这几个特例吧:首先就是<script>和<iframe>。
目前看来,WinXP SP3下IE6/7/8和FF3都有这个问题的,Opera10/Chrome5/Safari5则没有。
不过另一个<iframe>标签同样的问题,上面这些浏览器则好像无一幸免了。