Script 自封闭
??? 在HTML中有一些自封闭的标签,如<br />,<img />。
??? 而在使用外部js文件的时候,是否也有人使用自封闭式的script标签呢?
???
假如有如下一个html文件,query.js中包含一个getsomebody()方法,那么页面在浏览器里面看起来什么样子呢?
链接是否能正确调用getsomebody方法么?
<html><head><script type="text/javascript" src="js1.js" /></head><body><a href="javascript:getsomebody();">Test line</a>some text...</body><html>
?
如果你认为页面显示一个链接Text line,那么就错了,当你在浏览器里打开页面的时候,页面是一片空白。
那东西哪去了呢?
?
其实就是“自封闭”的script标签搞得鬼,
?
从以前的HTML到现在的XHTML中W3C的标准都规定script标签不是自封闭的,需要显示的使用</script>标签来封闭。
为什么页面什么都不显示呢?
答案是在<script>标签未读到结束标签</script>的时候,把下面的内容都当作了一块script来处理,但是这样语法又错了,导致什么都显示不出来。
如果你在body上面加一个</script>虽然语法不正确,但是你能发现,内容显示出来了。
现在仍然有很多人使用<script? />来引入js,最好还是改掉这个习惯,使用完整的标签吧。
1 楼 ql213 2012-01-06 确实是不容易引起注意但是又是导致大问题的一个现象