DOM&BOM

1,DOM&BOM的起源:DOM起源於Netscape與Microsoft 公司的DHTML(動態HTML)。Document Object Model,文檔對象模型,是針對HTML和XML文檔的一個API(Application Programming Interface,應用程序編程接口)。相似於JDBC是針對數據庫的一套API同樣。BOM是Browser Object Model的縮寫,簡稱瀏覽器對象模型node

 

2,它的mathods:DOMchrome

getElementById(id) - 獲取帶有指定 id 的節點(元素)數據庫

appendChild(node) - 插入新的子節點(元素)編程

removeChild(node) - 刪除子節點(元素)數組

getElembentsBytagName() 返回包含帶有指定標籤名稱的全部元素的節點列表(集合/節點數組)瀏覽器

getElementsByClassName() 返回包含帶有指定類名的全部元素的節點列表app

 BOM:框架

window.location:瀏覽器地址欄信息
window.location.href : 瀏覽器的url 與 window.location相同
window.location.search: url?後面的內容
window.location.hash : url#後面的內容,能夠用於作幻燈片等
window.close(): 存在兼容性 
ff : 默認沒法關閉 
chrome :默認直接關閉 
ie:詢問用戶函數

3,它的contenturl

DOM的content: string :定義文本內容

url:定義url

counter(name)

counter(name, list-style-type)

counters(name, string)

counters(name, string, list-style-type)

attr(X)   定義顯示在該選擇器以前或以後的選擇器的屬性。

BOM的content

document對象的一些通用屬性:

 lastModified:最後修改的日期,是字符串;

 referrer:瀏覽器歷史中後退一個位置的URL;

 title:標籤中顯示文本;

URL:當前載入的頁面的URL。

改變框架標題:top.document.title=」新的頁面標題」;

如把窗口導航到新頁面:

document.URL = "http://www.baidu.com";

 document對象的集合:

anchors:頁面中全部錨的集合;

applets:頁面中全部applet的集合;

embeds:頁面中嵌入式對象的集合;

forms:頁面中全部表單的集合;

images:頁面中全部圖像的集合;

links:頁面中全部超連接的集合。

用document.links[0]訪問超連接;

用document.images[0]或document.images["imgHome"]訪問圖像;

用document.forms[0]或document.forms["frmSubscribe"]訪問表單.

4,它的應用;

DOM:

<1> 取得 IHTMLDocument2 的接口指針。根據IE瀏覽器的運行方式,有多種不一樣的方式能夠獲取文檔指針。

 <1.1> 若是你在程序中使用MFC的 CHtmlView 視來瀏覽網頁。

取得文檔的方法最簡單,調用 CHtmlView::GetHtmlDocument() 函數。

<1.2> 若是你的程序中使用了「Web 瀏覽器」 的ActiveX 控件。

取得文檔的方法也比較簡單,調用 CWebBrowser2::GetDocument() 函數。

<1.3> 若是你的程序是用 ATL 寫的 ActiveX 控件。

那麼須要調用 IOleClientSite::GetContainer 獲得 IOleContainer 接口,而後就能夠經過 QueryInterface() 查詢獲得 IHTMLDocument2 的接口。

<1.4> 若是你的程序是用 MFC 寫的 ActiveX 控件。

那麼須要調用 COleControl::GetClientSite() 獲得 IOleContainer 接口,而後的操做和<1.3>是一致的了。

<1.5> IE 瀏覽器做爲獨立的進程正在運行。

每一個運行的瀏覽器(IE 和 資源瀏覽器)都會在 ShellWindows 中進行登記,所以咱們要經過 IShellWindows 取得實例(示例程序中使用的就是這個方法)。

1.6> IE 瀏覽器控件被一個進程包裝在一個子窗口中。那麼你首先要獲得那個進程的頂層窗口句柄(使用 FindWindow() 函數,或其它任何可行的方法),而後枚舉全部子窗口,經過判斷窗口類名是不是「Internet Explorer_Server」,從而獲得瀏覽器的窗口句柄,再向窗口發消息取得文檔的接口指針

<2> 獲得了 IHTMLDocument2 接口指針後,若是網頁是單貞的,那麼轉第<4>步驟。若是是多貞(有子框架)則還須要遍歷全部的子框架。這些子框架(IHTMLWindow2),被保存在集合中(IHTMLFramesCollection2),取得集合指針的方法比較簡單,取屬性 IHTMLDocument2::get_frames()。

<3> 首先取得子框架的總數目 IHTMLFramesCollection::get_length(),接着就能夠循環調用 IHTMLFramesCollection::item()函數一個一個地取得子框架 IHTMLWindow2 指針,而後轉第<1>步。

<4> 一個文檔中可能擁有多個表單,所以仍是一樣的道理,先要取得表單的集合(IHTMLElementCollection,其實這個不光是表單的集合,其餘元素的集合,好比圖片集合也是用它)。這個操做也很簡單,取得屬性 IHTMLDocument2::get_forms()。

<5> 屬性 IHTMLElementCollection::get_length() 獲得表單總數目,就能夠循環取得每個表單指針了 IHTMLElementCollection::item()。

<6> 在第<5>步中的item()函數,獲得的是一個IDispatch的指針,你經過QueryInterface()查詢,就能夠獲得 某類型輸入的指針,

BOM的應用

1.彈出新的瀏覽器窗口

2.移動、關閉瀏覽器窗口及調整窗口的大小

3.在瀏覽器的窗口中實現頁面的前進、後退功能

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息