1. 程式人生 > >BOM與DOM解釋與分析

BOM與DOM解釋與分析

BOM即瀏覽器物件模型(brower object model)

DOM即文件物件模型(document object model)

一: BOM

BOM包含windows(視窗)、navigator(瀏覽器)、screen(瀏覽器螢幕)、history(訪問歷史)、location(地址)等

1. windows:頁面一旦載入,就會建立windows物件,無需自行建立。通過該物件可以獲取文字框的寬高(windows.innerWidth)、瀏覽器視窗寬高(windows.outerWidth)、開啟關閉新視窗(windows.open("/")、windows.close())等屬性

2. Navigator:提供瀏覽器相關資訊,包括瀏覽器名稱、版本號、作業系統等等。

3. screen:提供使用者螢幕相關資訊。如高寬等(screen.width)。

4. history:記錄訪問歷史。返回上次訪問地址:history.back。返回上上次history.back(2),以此類推。

5. location:瀏覽器中的位址列,可以完成重新整理當前頁面與放回首頁、顯示埠號、伺服器等資訊。

6. alert彈出框、confirm確認框、prompt輸入框:

此時d=trur(是)、false(否)

name=輸入的值

7. 計時器:

 

<script>
  
function printTime(){
  var d = new Date();
  var h= d.getHours();
  var m= d.getMinutes();
  var s= d.getSeconds();
  document.getElementById("time").innerHTML= h+":"+m+":"+s;
  
}
 
function showTimeIn3Seconds(){
   setTimeout(printTime,3000); 
}
  
</script>
<div id="time"></div>
<button onclick="showTimeIn3Seconds()">點選後3秒鐘後顯示當前時間,並且只顯示一次</button>

二:DOM:

DOM就是把html裡的各種資料當做物件處理的一種思路。

1. 通過document.getElementById獲取了id=d1的div標籤對應的元素節點 
然後通過attributes 獲取了該節點對應的屬性節點 
接著通過childNodes獲取了內容節點

2. 獲取節點:

 divs=getElementsByTagName("div")會獲取所有div元素,放在一個數組中,通過迴圈或者divs[]獲取順序元素。

getElementsByClassName("d")會獲取所有class為d的元素,放在陣列中。

getElementsByName("userName")會獲取所有name為username的元素,放在陣列中。

如果通過以上方式獲取不到,原因是因為js是按照順序載入執行的,如果js在上,需要獲取的html元素在下,則不會獲取到該元素,為null值。

 3. 獲取節點的屬性:

div1 = document.getElementById("d1");name=div1.nodeValue為空,因為文件跟元素節點是沒有值的,但是元素的屬性節點是可以取到值的,如:div1.attributes[0].nodeValue就等於d1,div1.childNodes[0].nodeValue就等於div中的值"你好"。

可以通過.innerHTML來獲取和改變元素中的值,div1.innerHTML="我也好"。獲取:name = div1.innerHTML。name的值就是你好。

4. DOM的事件:

                                                                                                     ---以上內容來自how2j.cn/的自學筆記。