日期:2014-05-16  浏览次数:20641 次

各大浏览器HTML标签闭合功能小结

?WoYiGuis BLoG

各大浏览器有一个特性,也就是当我们无意中忘记闭合某一个标签的话,经过浏览的处理,输出时,就会“多管闲事”的帮助闭合上。虽然此功能看似很好,但是因为浏览器定则闭合规则都不相同,导致匹配不一样,有时少写一个闭合,当前标签的页面都会丢失,具体如下:
测试代码:
<script src="xss.js"

1、IE
???? 没有闭合功能,会以普通字符输出。
2、Firefox
???? 当未闭合的标签之前有任意内容,FF就会将其正确闭合。如果之前无内容,且未闭合,那么其后的代码将全部丢失,也就是说本标签后有再多的内容,也不会有输出。直到遇见第一个闭合标签,如:
</script>
那么结束前的将会全部丢失,其后的正常显示。
3、chrome
???? 当未闭合的标签其后有一个标签,即可闭合。如果是普通字符,将会丢失。
4、Safari
???? 无闭合功能,正确标签和错误标签都会按其本身功能去执行,不会丢失。
5、Opera
???? 无闭合的标签按普通字符输出。

有些测试的可能不是太详细。经过测试,个人感觉不如像IE和Opera那样,没有标签闭合功能,这样在调试的时候就很好判断了。