如何:访问托管 HTML 文档对象模型

更新:2007 年 11 月

可以从两种类型的应用程序访问托管 HTML 文档对象模型 (DOM):

  • 承载了托管 WebBrowser 控件的 Windows 窗体应用程序 (.exe)。这两种技术互相补充,WebBrowser 控件向用户显示页面,HTML DOM 表示文档的逻辑结构。

  • 在 Internet Explorer 内承载的 Windows 窗体 UserControl。您可以访问表示承载您的 UserControl 的页面的 HTML DOM,以更改文档结构或打开模式对话框(还有很多其他可能的操作)。

从 Windows 窗体应用程序访问 DOM

  1. 在 Windows 窗体应用程序内部承载 WebBrowser 控件,并监视 DocumentCompleted 事件。有关承载控件和监视事件的详细信息,请参见使用事件

  2. 通过访问 WebBrowser 控件的 Document 属性来从 HtmlDocument 中检索当前页。

从在 Internet Explorer 中承载的 UserControl 访问 DOM

  1. UserControl 类创建您自己的自定义派生类。有关更多信息,请参见 如何:创作复合控件

  2. 将下面的代码放置在您的 UserControl 的 Load 事件处理程序中:

Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If (Me.Site IsNot Nothing) Then
        Dim Doc As HtmlDocument = CType(Me.Site.GetService(Type.GetType("System.Windows.Forms.HtmlDocument")), HtmlDocument)
    End If
End Sub
     HtmlDocument doc = null;

        private void UserControl1_Load(object sender, EventArgs e)
        {
            if (this.Site != null)
            {
                doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
            }
        }

可靠编程

  1. 通过 WebBrowser 控件使用 DOM 时,总是应等到 DocumentCompleted 事件发生之后,再试图访问 WebBrowser 控件的 Document 属性。加载整个文档之后会引发 DocumentCompleted 事件;如果您在此之前用过 DOM,则有导致应用程序中出现运行时异常的风险。

安全性

  1. 您的应用程序或 UserControl 将需要完全信任,才能访问托管 HTML DOM。如果使用 ClickOnce 部署 Windows 窗体应用程序,可以使用“权限提高”或“受信任的应用程序部署”请求完全信任;有关详细信息,请参见 ClickOnce 部署概述ClickOnce 部署和安全

请参见

其他资源

使用托管 HTML 文档对象模型