Gewusst wie: Zugreifen auf den HTML-Quellcode im verwalteten HTML-Dokumentobjektmodell

Aktualisiert: November 2007

Die DocumentStream-Eigenschaft und die DocumentText-Eigenschaft des WebBrowser-Steuerelements geben den HTML-Code des aktuellen Dokuments zurück, der bei der ersten Anzeige verwendet wurde. Wenn Sie aber die Seite mithilfe von Methoden- und Eigenschaftenaufrufen wie AppendChild und InnerHtml ändern, werden diese Änderungen nicht angezeigt, wenn Sie DocumentStream und DocumentText aufrufen. Um die aktuelle HTML-Quelle für das DOM zu erhalten, müssen Sie die OuterHtml-Eigenschaft des HTML-Elements aufrufen.

In der folgenden Prozedur wird gezeigt, wie die dynamische Quelle abgerufen und in einem separaten Kontextmenü angezeigt wird.

Abrufen der dynamischen Quelle mit der OuterHtml-Eigenschaft

  1. Erstellen Sie eine neue Windows Forms-Anwendung. Beginnen Sie mit einem einzelnen Form, und nennen Sie es Form1.

  2. Hosten Sie das WebBrowser-Steuerelement in der Windows Forms-Anwendung, und nennen Sie es WebBrowser1. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Webbrowserfunktionen zu einer Windows Forms-Anwendung.

  3. Erstellen Sie in der Anwendung ein zweites Form mit dem Namen CodeForm.

  4. Fügen Sie ein RichTextBox-Steuerelement zu CodeForm hinzu, und legen Sie dessen Dock-Eigenschaft auf Fill fest.

  5. Erstellen Sie auf CodeForm eine öffentliche Eigenschaft mit dem Namen Code.

    Public Property Code() As String
        Get
            If (RichTextBox1.Text IsNot Nothing) Then
                Code = RichTextBox1.Text
            Else
                Code = ""
            End If
        End Get
    
        Set(ByVal value As String)
            RichTextBox1.Text = value
        End Set
    End Property
    
         public string Code
            {
                get
                {
                    if (richTextBox1.Text != null)
                    {
                        return (richTextBox1.Text);
                    }
                    else
                    {
                        return ("");
                    }
                }
                set
                {
                    richTextBox1.Text = value;
                }
            }
    
  6. Fügen Sie ein Button-Steuerelement mit dem Namen Button1 zum Form hinzu, und überwachen Sie es auf das Click-Ereignis. Einzelheiten zum Überwachen von Ereignissen finden Sie unter Behandeln von Ereignissen.

  7. Fügen Sie dem Click-Ereignishandler folgenden Code hinzu.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim elem As HtmlElement
    
        If (WebBrowser1.Document IsNot Nothing) Then
            Dim cf As New CodeForm()
            Dim elems As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("HTML")
            If (elems.Count = 1) Then
                elem = elems(0)
                cf.Code = elem.OuterHtml
                cf.Show()
            End If
        End If
    End Sub
    
         private void button1_Click(object sender, EventArgs e)
            {
                HtmlElement elem;
    
                if (webBrowser1.Document != null)
                {
                    CodeForm cf = new CodeForm();
                    HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("HTML");
                    if (elems.Count == 1)
                    {
                        elem = elems[0];
                        cf.Code = elem.OuterHtml;
                        cf.Show();
                    }
                }
            }
    

Robuste Programmierung

Testen Sie stets den Wert von Document, bevor Sie versuchen, es abzurufen. Wenn die aktuelle Seite noch nicht vollständig geladen wurde, werden Document oder ein bzw. mehrere untergeordnete Objekte möglicherweise nicht initialisiert.

Siehe auch

Referenz

Übersicht über das WebBrowser-Steuerelement

Weitere Ressourcen

Verwenden des verwalteten HTML-Dokumentobjektmodells