各浏览器处理空白和换行的差异

所有现代浏览器都支持 W3C DOM 规范。不过,浏览器之间是有差异的。重要的区别有两点:

  • 加载 HTML 的方式
  • 处理空白和换行的方式

本文主要讲解各浏览器处理空白和换行的方式。

IE6、7、8

忽略标签之间的空白和换行字符。

其它浏览器

对于标签之间的空白和换行字符会作为文本节点来处理。

示例代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/>
		<title>HTML5</title>
		<script>
			window.οnlοad=function(){
				alert(document.body.childNodes.length);
			}
		</script>
	</head>

	<body>
		<p>鬼眼邪神的博客,http://cyg7561.blog.163.com/</p>
		<p>鬼眼邪神的博客,http://cyg7561.blog.163.com/</p>
		<p>鬼眼邪神的博客,http://cyg7561.blog.163.com/</p>
	</body>
</html>

在IE6、7、8中,弹框中显示的是3。在其它浏览器中,弹框中显示的是7。

解决方法

如需忽略元素节点之间的空文本节点,需要检查节点类型。元素节点的类型是1。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/>
		<title>HTML5</title>
		<script>
			window.οnlοad=function(){
				var sum=0;
				for (var i=0;i<document.body.childNodes.length;i++){
					if (document.body.childNodes[i].nodeType==1){
						sum++;
					}
				}
				alert(sum);
			}
		</script>
	</head>

	<body>
		<p>鬼眼邪神的博客,<a href="http://cyg7561.blog.163.com/" title="鬼眼邪神的博客">http://cyg7561.blog.163.com/</a></p>
		<p>鬼眼邪神的博客,<a href="http://cyg7561.blog.163.com/" title="鬼眼邪神的博客">http://cyg7561.blog.163.com/</a></p>
		<p>鬼眼邪神的博客,<a href="http://cyg7561.blog.163.com/" title="鬼眼邪神的博客">http://cyg7561.blog.163.com/</a></p>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值