在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,最好还是改掉这个习惯,使用完整的标签吧。