可以从两种类型的应用程序访问托管 HTML 文档对象模型(DOM):
托管 WebBrowser 控件的 Windows 窗体应用程序(.exe)。 这两种技术相互补充, WebBrowser 控件向用户显示页面,HTML DOM 表示文档的逻辑结构。
托管在 Internet Explorer 中的 Windows 窗体 UserControl。 您可以访问托管您的 UserControl 的页面的 HTML DOM,以更改文档结构、打开模式对话框或者实现其他许多功能。
从 Windows 窗体应用程序访问 DOM
在 Windows 窗体应用程序中托管 WebBrowser 控件,并监视 DocumentCompleted 事件。 有关托管事件控件和监视的详细信息,请参阅 “事件”。
通过访问Document属性中的WebBrowser控件来检索当前页的HtmlDocument。
从 Internet Explorer 中托管的 UserControl 访问 DOM
创建 UserControl 类的自定义派生类。 有关详细信息,请参阅 “如何:创作复合控件”。
将以下代码置于 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
可靠的编程
- 通过 WebBrowser 控件使用 DOM 时,应始终等到 DocumentCompleted 事件发生,然后再尝试访问 Document 控件的属性 WebBrowser 。 在 DocumentCompleted 加载整个文档后引发该事件;如果之前使用 DOM,则可能导致应用程序中出现运行时异常。
.NET Framework 安全性
- 您的应用程序或 UserControl 需要完全信任才能访问托管的 HTML DOM。 如果使用 ClickOnce 部署 Windows 窗体应用程序,可以通过权限提升或信任的应用程序部署来请求完全信任权限;有关详细信息,请参阅 保护 ClickOnce 应用程序。