JavaScript中的DOM和BOM

JavaScript的構成

經常會被問到JavaScript是什麼東西。聽到不少回答都是:「是一個前端的語言。」這種說法比較寬泛,嚴格來講一個完整的JavaScript由下列三個不一樣的部分組成:前端

  • 核心(ECMAScript)
  • 文檔對象模型(DOM)
  • 瀏覽器對象模型(BOM)

ECMAScript能夠當作是JS這門語言的規範和基礎,暫不作詳述,咱們今天的重點是說說DOM和BOM。web

文檔對象模型(DOM)

DOM把整個頁面映射爲一個多層節點結構,其中包含標籤,包含數據。DOM提供的API可讓咱們對各類節點進行增刪改查。jQuery的元素選擇器也就是以這堆API爲核心封裝出來的。瀏覽器

最初微軟和網景分別給出了不一樣形式的HTML來支持web開發,顯然,這堆開發人員是極爲不友好的,違背了web的跨平臺天性。爲此,負責制定Web通訊標準的W3C開始規劃DOM。cookie

DOM級別

若是有人看到DOM標準是從DOM0開始的話,其實是不許確的,若是非要加進來,DOM0應該指的是微軟和網景最初支持的DHTML。因此咱們認爲DOM標準的發展應該是下文中的1,2,3級。對象

DOM1級

1998年10月,DOM1級成爲W3C的推薦標準。接口

DOM1級的兩個模塊:事件

  • DOM 核心
  • DOM HTML

DOM核心依然做爲規定如何映射XML文檔結構來簡化對文檔的訪問和操做。DOM HTML則是在DOM核心的基礎上添加了對象和方法。ip

DOM2級

DOM2級爲了讓文檔的操做更爲精細和便捷,擴充了更多模塊。其中包含:開發

  • DOM視圖:定義了跟蹤不一樣文檔視圖的接口;
  • DOM時間:定義了事件和事件處理的接口;
  • DOM樣式:定義了基於CSS爲元素的應用樣式接口;
  • DOM便利和範圍:定義了遍歷和操做文檔樹的接口;

DOM3級

DOM3級的推出也是爲了擴展DOM,增長DOM的健壯性和通用性:文檔

  • DOM加載和保存模塊:引入了以統一方式加載和保存文檔的方法;
  • DOM驗證模塊:引入驗證文檔的方法;
  • DOM核心模塊擴展:支持XML1.0規範(XML Infoset,XPath和XML Base)

其餘DOM支持

列出以下幾種W3C推薦的對DOM支持的標準:

  • SVG
  • MathML
  • SMIL

瀏覽器對象模型(BOM)

BOM能夠控制瀏覽器顯示的頁面之外的部分。

  • 彈出新的瀏覽器窗口;
  • 移動,縮放和關閉瀏覽器窗口;
  • 提供瀏覽器詳細信息的navigator對象;
  • 提供瀏覽器所加載頁面的詳細信息的location對象;
  • 提供用戶顯示器分辨率詳細信息的screen對象;
  • 對cookies的支持;
  • 像XMLHttpRequert和IE的ActiveXObject這樣的自定義對象。 BOM是沒有標準的,沒個瀏覽器都有本身的實現。可是大多數瀏覽器會遵循某些默認規則。

總結

總的來講DOM提供訪問和操做網頁內容的方法和接口,BOM提供與瀏覽器交互的方法和接口。

相關文章
相關標籤/搜索