如何取得 WebBrowser 物件模型的 HTML 框架

文章翻譯 文章翻譯
文章編號: 196340 - 檢視此文章適用的產品。
(c) [Microsoft Corporation 1998 年,[保留所有的權限]。陳俊銘 Roberts,Microsoft 公司所佔的比重。
全部展開 | 全部摺疊

結論

此發行項的詳細資訊標準技術 WebBrowser 控制項主機可以使用存取 WebBrowser 物件模型的控制項內的 HTML 網頁中的框架視窗。這個物件模型提供額外的功能未公開的框架視窗,透過 HTML 物件模型。

其他相關資訊

下列程式碼會示範如何存取在 HTML 網頁中的框架 WebBrowser 物件模型,以重新整理每個框架的內容。

最重要的程式碼片段會使用 HTML 文件物件 IOleContainer::EnumObjects 方法來列舉內嵌在頁面上。 這些內嵌的每一個代表頁面中的一個控制項。藉由查詢每個控制項物件 IWebBrowser2,這段程式碼可以決定該控制項是否是一個 sub-frame。和 IWebBrowser2 表示 WebBrowser 物件模型,如果這個介面會成功 QueryInterface,結果將是 WebBrowser 物件模型的參考。
// Get the IDispatch of the document
LPDISPATCH lpDisp = NULL;
lpDisp = m_webBrowser.GetDocument();

if (lpDisp)
{
   IOleContainer* pContainer;

   // Get the container
   HRESULT hr = lpDisp->QueryInterface(IID_IOleContainer,
                                       (void**)&pContainer);
   lpDisp->Release();

   if (FAILED(hr))
      return hr;

   IEnumUnknown* pEnumerator;

   // Get an enumerator for the frames
   hr = pContainer->EnumObjects(OLECONTF_EMBEDDINGS, &pEnumerator);
   pContainer->Release();

   if (FAILED(hr))
      return hr;

   IUnknown* pUnk;
   ULONG uFetched;

   // Enumerate and refresh all the frames
   for (UINT i = 0; S_OK == pEnumerator->Next(1, &pUnk, &uFetched); i++)
   {
      IWebBrowser2* pBrowser;

      hr = pUnk->QueryInterface(IID_IWebBrowser2, (void**)&pBrowser);
      pUnk->Release();

      if (SUCCEEDED(hr))
      {
         // Refresh the frame
         pBrowser->Refresh();
         pBrowser->Release();
      }
   }

   pEnumerator->Release();
}
附註 在 HTML 網頁中裝載的 ActiveX 控制項可以使用這項技術,以類似的方式。在一般存取不安全的 WebBrowser 物件模型的 ActiveX 控制項不是安全用於指令碼,並且應該據此實作 IObjectSafety 介面的安全性。

屬性

文章編號: 196340 - 上次校閱: 2004年5月12日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Internet Explorer (Programming) 6.0
關鍵字:?
kbmt kbfaq kbhowto kbwebbrowser KB196340 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:196340
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com