Gewusst wie: Zugreifen auf das verwaltete HTML-Dokumentobjektmodell
Aktualisiert: November 2007
Sie können auf das verwaltete HTML-Dokumentobjektmodell (DOM) von zwei Anwendungsarten aus zugreifen:
Eine Windows Forms-Anwendung (EXE), die das verwaltete WebBrowser-Steuerelement gehostet hat. Diese beiden Technologien ergänzen sich gegenseitig, wobei das WebBrowser-Steuerelement dem Benutzer die Seite anzeigt und das HTML-DOM die logische Struktur des Dokuments darstellt.
Ein Windows Forms-UserControl, das innerhalb von Internet Explorer gehostet wurde. Sie können auf das HTML-DOM zugreifen, das die Seite darstellt, auf der das UserControl gehostet wird, um beispielsweise die Dokumentstruktur zu ändern oder modale Dialogfelder zu öffnen.
So greifen Sie über eine Windows Forms-Anwendung auf das DOM zu
Hosten Sie ein WebBrowser-Steuerelement innerhalb der Windows Forms-Anwendung, und überwachen Sie es auf das DocumentCompleted-Ereignis. Ausführliche Informationen über das Hosten von Steuerelementen und das Überwachen auf Ereignisse finden Sie unter Behandeln von Ereignissen.
Rufen Sie das HtmlDocument für die aktuelle Seite ab, indem Sie auf die Document-Eigenschaft des WebBrowser-Steuerelements zugreifen.
So greifen Sie von einem in Internet Explorer gehosteten UserControl auf das DOM zu
Erstellen Sie Ihre eigene benutzerdefinierte abgeleitete Klasse der UserControl-Klasse. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von zusammengesetzten Steuerelementen.
Platzieren Sie den folgenden Code innerhalb des Load-Ereignishandlers für das UserControl:
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));
}
}
Robuste Programmierung
- Wenn Sie das DOM mithilfe des WebBrowser-Steuerelements verwenden, sollten Sie stets so lange warten, bis das DocumentCompleted-Ereignis auftritt, bevor Sie versuchen, auf die Document-Eigenschaft des WebBrowser-Steuerelements zuzugreifen. Das DocumentCompleted-Ereignis wird ausgelöst, nachdem das gesamte Dokument geladen wurde. Wenn Sie das DOM vorher verwenden, besteht das Risiko, eine Laufzeitausnahme in der Anwendung zu verursachen.
Sicherheit
- Die Anwendung oder das UserControl setzen volle Vertrauenswürdigkeit voraus, um auf das verwaltete HTML-DOM zuzugreifen. Wenn Sie eine Windows Forms-Anwendung mit ClickOnce bereitstellen, können Sie volle Vertrauenswürdigkeit entweder über erweiterte Berechtigungen oder die Bereitstellung vertrauenswürdiger Anwendungen anfordern; ausführliche Informationen finden Sie unter Übersicht über die ClickOnce-Bereitstellung und unter ClickOnce-Bereitstellung und Sicherheit.