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

可以从两种类型的应用程序访问托管 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 事件处理程序中:

HtmlDocument doc = null;

private void UserControl1_Load(object sender, EventArgs e)
{
    if (this.Site != null)
    {
        doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
    }
}
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

可靠的编程

  1. 通过 WebBrowser 控件使用 DOM 时,应始终等到 DocumentCompleted 事件发生,然后尝试访问 WebBrowser 控件的 Document 属性。 加载整个文档后,将引发 DocumentCompleted 事件;如果在之前使用 DOM,则可能会导致应用程序中出现运行时异常。

.NET Framework 安全性

  1. 应用程序或 UserControl 需要完全信任才能访问托管 HTML DOM。 如果要使用 ClickOnce 部署 Windows 窗体应用程序,可以通过请求权限提升或使用受信任应用程序部署来获得完全信任,详细信息请参阅 保护 ClickOnce 应用程序

另请参阅