各瀏覽器處理空白和換行的差異

所有現代瀏覽器都支持 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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章