Udostępnij za pośrednictwem


Instrukcje: uzyskiwanie dostępu do źródła HTML w zarządzanym modelu obiektów dokumentów HTML

Właściwości DocumentStream i DocumentText w kontrolce WebBrowser zwracają kod HTML bieżącego dokumentu, gdy był wyświetlany po raz pierwszy. Jeśli jednak zmodyfikujesz stronę przy użyciu wywołań metod i właściwości, takich jak AppendChild i InnerHtml, te zmiany nie będą wyświetlane podczas wywoływania DocumentStream i DocumentText. Aby uzyskać najbardziej up-toźródło HTML daty dla modelu DOM, należy wywołać właściwość OuterHtml w elemecie HTML.

Poniższa procedura przedstawia sposób pobierania źródła dynamicznego i wyświetlania go w osobnym menu skrótów.

Pobieranie dynamicznego źródła za pomocą właściwości OuterHtml

  1. Utwórz nową aplikację Windows Forms. Rozpocznij od pojedynczego Formi nazwij go Form1.

  2. Hostowanie kontrolki WebBrowser w aplikacji Windows Forms, nadając jej nazwę WebBrowser1. Aby uzyskać więcej informacji, zobacz Jak dodać funkcje przeglądarki internetowej do aplikacji Windows Forms.

  3. Utwórz drugą Form w aplikacji o nazwie CodeForm.

  4. Dodaj kontrolkę RichTextBox do CodeForm i ustaw jej właściwość Dock na Fill.

  5. Utwórz właściwość publiczną w CodeForm o nazwie 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. Dodaj kontrolkę Button o nazwie Button1 do Formi monitoruj zdarzenie Click. Aby uzyskać szczegółowe informacje na temat monitorowania zdarzeń, zobacz Events.

  7. Dodaj następujący kod do programu obsługi zdarzeń Click.

    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
    

Niezawodne programowanie

Zawsze przetestuj wartość Document przed podjęciem próby jej pobrania. Jeśli bieżąca strona nie zakończyła ładowania, Document lub co najmniej jeden z jego obiektów podrzędnych może nie zostać zainicjowany.

Zobacz też