關於MSHTML (轉)

worldblog發表於2007-08-16
關於MSHTML (轉)[@more@].com/default." target=_top>MSDN Home >   >   > 

關於MSHTML

訪問動態HTML()模型的所有介面以為基類,而且也是被用於指令碼的物件模型的基礎。因此對要操縱物件模型的任何人來說很重要的是熟悉定義在的概要和包含的物件模型參考中的結構和功能。

MSHTML參考的這一節說明了物件如何在DHTML物件模型裡面對映到介面。舉例來說,使用這一個對映,你可以看到IHTMLDocument2介面對映到文件物件。對介面的進一步的研究說明了如何透過get_put_方法訪問物件的屬性。物件的方法對映到可用的介面的方法,而且事件可以用標準的對OLE自動化連線點來捕獲。

如何使物件模型介面的樣例的演示在Colbtn、Driller和WalkAll示例中,這些示例在s/samples/inte/browser/colbtn/default.asp">Colbtn示例頁面、和上。

  • 使用介面的建議
  • 獲得文件介面
  • 使用文件介面
  • 相關的主題

使用介面的建議

通常,在文件中可以用指令碼完成的任何事都可以透過使用介面操縱物件模型來完成。因此推薦了在寫使用物件模型介面的程式碼之前, 開發者應該在一個 HTML文件裡面使用指令碼設計功能原型。

下列HTML例子說明如何用指令碼導航文件的集合而且獲得文件的每個元素的標籤名字。等價的使用物件模型介面Microsoft (R) Visual C++(R)程式碼演示在Driller示例原始碼頁面WalkAll示例原始碼頁面上。

例子

Page Title

function Loaded()

{

  var c = document.all.length;

  var i;

  for(i = 0; i < c; i++)

  {

  spanTAGS.innerHTML = spanTAGS.innerHTML + document.all.item(i).tagName + "
";

  }

}

獲得文件介面

要開始使用物件模型介面,就要從文件獲得IHTMLDocument2介面。一旦你有了這個介面,你就能存取文件中所有的元素。文件介面如何被獲得依賴於你的應用如何實現。 每一個下列場合需要以不同的方式獲得文件介面。

  • 整合MSHTML時
  • 整合的一個例項時。
  • 從一個網頁中包含的一個Microsoft (R)控制元件。

整合MSHTML時獲得文件介面

當整合一個MSHTML物件的時候,使用 建立物件。 一旦建立了物件,你可以它的 方法,請求IID_IHTMLDocument2。WalkAll示例原始碼頁面的WalkAll樣例說明了該如何做。

整合瀏覽器控制元件時獲得文件介面

當整合瀏覽器控制元件的時候,下列步驟獲得文件介面:

  1. 呼叫 browser/reference/ifaces/iwebbrowser2/document.asp">IWebBrowser2::get_Document 獲得文件的 IDispatch 介面。(譯者注:MFC的CHtmlView的GetHtmlDocument方法,瀏覽器控制元件的Document屬性或者DHtmlEdit控制元件的屬性也可以用於獲取文件介面)
  2. 呼叫在前面步驟中獲得的IDispatch指標的的QueryInterface,請求IID_IHTMLDocument2。

從ActiveX控制元件獲得文件介面

ActiveX文件的節解釋瞭如何從ActiveX (R)控制元件獲得文件介面。

使用文件介面

使用文件介面

一旦你獲得了文件介面,你就可以使用任何一個IHTMLDocument2介面獲得或修改文件的屬性。這通常包括從文件包含的不同的元素中得到一些IHTMLElementCollection介面。

一個非常普遍的集合物件是all集合物件。all集合物件是透過使用IHTMLDocument2::all (譯者注:原文如此,似乎應該改成get_all)方法獲得的。 這個方法返回一個包含文件的所有元素的IHTMLElementCollection介面。然後你可以使用方法列舉元素。 IHTMLElementCollection::item方法為你提供一個你能呼叫 QueryInterface ,請求IID_IHTMLElement的IDispatch指標。這將會給你一個你能用來為個別的元素獲得或設定資訊的IHTMLElement介面指標。

大多數的元素提供一個介面操縱那個特定的元素。這些元素相關的介面名字具有IHTMLXXXXElement的格式,這裡XXXX是元素的名字。要獲得元素相關的介面,可以在IHTMLElement介面上呼叫QueryInterface,請求被需要的元素相關的介面。舉例來說img 元素提供一個 IHTMLImgElement介面以可能用來明確地操縱img元素。要檢視可用的元素相關的介面列表,檢視介面和指令碼物件的介面列表。

相關的主題

  • (譯者推薦)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-960761/,如需轉載,請註明出處,否則將追究法律責任。

相關文章