如何获取一个 HTML 框架的 web 浏览器对象模型

文章翻译 文章翻译
文章编号: 196340 - 查看本文应用于的产品
(c) Microsoft Corporation 1998,保留的所有权限。Scott Roberts,Microsoft 公司的贡献。
展开全部 | 关闭全部

概要

使用此文章详细信息在标准的技术的 web 浏览器控件主机可以访问在控件内的 HTML 页中的框架窗口的 web 浏览器对象模型。此对象模型提供了额外的框架窗口通过 HTML 对象模型不公开的功能。

更多信息

下面的代码演示如何访问的 HTML 页中框架在 web 浏览器对象模型更新每个框架的内容。

最重要的代码使用 HTML 文档对象 IOleContainer::EnumObjects 的方法枚举在页上的嵌入。 这些嵌入的每个代表页面上的控件。通过查询每个控件对象 IWebBrowser2,此代码可以确定控件是否是一个 sub-frame。和 IWebBrowser2 表示在 web 浏览器对象模型 ; 如果为该接口成功 QueryInterface,结果是在 web 浏览器对象模型的引用。
// 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();
}
注意 ActiveX 控件宿主 HTML 页中可以使用此方法以类似的方式。一般情况下,访问不安全的 web 浏览器对象模型的 ActiveX 控件不是可安全执行脚本,应相应地实现 IObjectSafety 接口的安全。

属性

文章编号: 196340 - 最后修改: 2004年5月12日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Internet Explorer (Programming) 6.0
关键字:?
kbmt kbfaq kbhowto kbwebbrowser KB196340 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 196340
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 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