第七週web做業:DOM&BOM

DOM 描述了處理網頁內容的方法和接口;瀏覽器

BOM 描述了與瀏覽器進行交互的方法和接口。cookie

 

  DOM(文檔對象模型)是 HTML 和 XML 的應用程序接口(API)。DOM 將把整個頁面規劃成由節點層級構成的文檔。HTML 或 XML 頁面的每一個部分都是一個節點的衍生物。DOM 經過建立樹來表示文檔,從而使開發者對文檔的內容和結構具備空前的控制力。用 DOM API 能夠輕鬆地刪除、添加和替換節點。框架

自從 IE 4.0 和 Netscape Navigator 4.0 開始支持不一樣形態的動態 HTML(DHTML),開發者首次可以在不重載網頁的狀況下修改它的外觀和內容。這是 Web 技術的一大飛躍,不過也帶來了巨大的問題。Netscape 和微軟各自開發本身的 DHTML,從而結束了 Web 開發者只編寫一個 HTML 頁面就能夠在全部瀏覽器中訪問的時期。業界決定必需要作點什麼以保持 Web 的跨平臺特性,他們擔憂若是聽任 Netscape 和微軟公司這樣作,Web 必將分化爲兩個獨立的部分,每一部分只適用於特定的瀏覽器。所以,負責指定 Web 通訊標準的團體 W3C(World Wide Web Consortium)就開始制定 DOM。ide

DOM Level 1 是 W3C 於 1998 年 10 月提出的。它由兩個模塊組成,即 DOM Core 和 DOM HTML。前者提供了基於 XML 的文檔的結構圖,以便訪問和操做文檔的任意部分;後者添加了一些 HTML 專用的對象和方法,從而擴展了 DOM Core。學習

注意,DOM 不是 JavaScript 專有的,事實上許多其餘語言都實現了它。不過,Web 瀏覽器中的 DOM 已經用 ECMAScript 實現了,如今是 JavaScript 語言的一個很大組成部分。對象

DOM Level 1 只是一個目標,即規劃文檔的結構,DOM Level 2 的目標就普遍多了。對原始 DOM 的擴展添加了對鼠標和用戶界面事件(DHTML 對此有豐富的支持)、範圍、遍歷(重複執行 DOM 文檔的方法)的支持,並經過對象接口添加了對 CSS(層疊樣式表)的支持。由 Level 1 引入的原始 DOM Core 也加入了對 XML 命名空間的支持。blog

DOM Level 2 引入了幾種 DOM 新模塊,用於處理新的接口類型:接口

  • DOM 視圖 - 描述跟蹤文檔的各類視圖(即 CSS 樣式化以前和 CSS 樣式化以後的文檔)
  • DOM 事件 - 描述事件的接口
  • DOM 樣式 - 描述處理基於 CSS 樣式的接口
  • DOM 遍歷和範圍 - 描述遍歷和操做文檔樹的接口

DOM Level 3 引入了以統一的方式載入和保持文檔的方法(包含在新模塊 DOM Load and Save)以及驗證文檔(DOM Validation)的方法,從而進一步擴展了 DOM。在 Level 3 中,DOM Core 被擴展爲支持全部的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。事件

在學習 DOM 時,可能會遇到有人引用 DOM Level 0。注意,根本沒有 DOM Level 0 這個標準,它只是 DOM 的一個歷史參考點(DOM Level 0 指的是 IE 4.0 和 Netscape Navigator 4.0 中支持的原始 DHTML)。ip

IE 3.0 和 Netscape Navigator 3.0 提供了一種特性 - BOM(瀏覽器對象模型),能夠對瀏覽器窗口進行訪問和操做。使用 BOM,開發者能夠移動窗口、改變狀態欄中的文本以及執行其餘與頁面內容不直接相關的動做。使 BOM 獨樹一幟且又經常使人懷疑的地方在於,它只是 JavaScript 的一個部分,沒有任何相關的標準。

 

  BOM 主要處理瀏覽器窗口和框架,不過一般瀏覽器特定的 JavaScript 擴展都被看作 BOM 的一部分。這些擴展包括:

  • 彈出新的瀏覽器窗口
  • 移動、關閉瀏覽器窗口以及調整窗口大小
  • 提供 Web 瀏覽器詳細信息的定位對象
  • 提供用戶屏幕分辨率詳細信息的屏幕對象
  • 對 cookie 的支持
  • IE 擴展了 BOM,加入了 ActiveXObject 類,能夠經過 JavaScript 實例化 ActiveX 對象

因爲沒有相關的 BOM 標準,每種瀏覽器都有本身的 BOM 實現。有一些事實上的標準,如具備一個窗口對象和一個導航對象,不過每種瀏覽器能夠爲這些對象或其餘對象定義本身的屬性和方法。

相關文章
相關標籤/搜索