Freigeben über


Vorgehensweise: Zugreifen auf die HTML-Quelle im Objektmodell für verwaltete HTML-Dokumente

Die Eigenschaften DocumentStream und DocumentText für das WebBrowser-Steuerelement liefern den HTML-Code des aktuellen Dokuments in ihrer ursprünglichen Form zurück, als es zum ersten Mal angezeigt wurde. Wenn Sie die Seite jedoch mithilfe von Methoden- und Eigenschaftsaufrufen wie AppendChild und InnerHtmländern, werden diese Änderungen nicht angezeigt, wenn Sie DocumentStream und DocumentTextaufrufen. Um die up-to-date-HTML-Quelle für das DOM abzurufen, müssen Sie die OuterHtml-Eigenschaft für das HTML-Element aufrufen.

Das folgende Verfahren zeigt, wie Sie die dynamische Quelle abrufen und in einem separaten Schnellzugriffsmenü anzeigen.

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 ihn Form1.

  2. Fügen Sie das WebBrowser-Steuerelement in Ihre Windows Forms-Anwendung ein und nennen Sie es WebBrowser1. Weitere Informationen finden Sie unter So fügen Sie einer Windows Forms-Anwendung Webbrowser-Funktionen hinzu.

  3. Erstellen Sie in Ihrer Anwendung eine zweite Form mit dem Namen CodeForm.

  4. Fügen Sie ein Steuerelement RichTextBox zu CodeForm hinzu und legen Sie die Eigenschaft Dock auf Fillfest.

  5. Erstellen Sie eine öffentliche Eigenschaft für CodeForm namens Code.

    public string Code
    {
        get
        {
            if (richTextBox1.Text != null)
            {
                return (richTextBox1.Text);
            }
            else
            {
                return ("");
            }
        }
        set
        {
            richTextBox1.Text = value;
        }
    }
    
    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
    
  6. Fügen Sie Ihrem Formein Button-Steuerelement namens Button1 hinzu, und überwachen Sie das Click-Ereignis. Ausführliche Informationen zur Überwachung von Ereignissen finden Sie unter Ereignisse.

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

    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();
            }
        }
    }
    
    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
    

Robuste Programmierung

Testen Sie immer den Wert von Document, bevor Sie versuchen, ihn abzurufen. Wenn das Laden der aktuellen Seite nicht abgeschlossen ist, werden Document oder mindestens ein untergeordnetes Objekt möglicherweise nicht initialisiert.

Siehe auch