Nasıl yapılır: Yönetilen HTML Belgesi Nesne Modelinde HTML Kaynağına Erişme

DocumentStreamDenetimdeki ve DocumentText Özellikleri, WebBrowser geçerli belgenin ilk GÖRÜNTÜLENMESIYLE var olan HTML 'i döndürür. Ancak, ve gibi Yöntem ve özellik çağrılarını kullanarak sayfayı değiştirirseniz AppendChild InnerHtml , ve ' i çağırdığınızda bu değişiklikler görünmez DocumentStream DocumentText . DOM için en güncel HTML kaynağını elde etmek için, OuterHtml ÖZELLIĞI HTML öğesinde çağırmanız gerekir.

Aşağıdaki yordamda, dinamik kaynağın nasıl alınacağını ve ayrı bir kısayol menüsünde nasıl görüntüleneceği gösterilmektedir.

OuterHtml özelliği ile dinamik kaynak alma

  1. yeni bir Windows Forms uygulaması oluşturun. Tek bir ile başlayın Form ve çağırın Form1 .

  2. WebBrowserWindows Forms uygulamanızda denetimi barındırın ve adlandırın WebBrowser1 . daha fazla bilgi için bkz. nasıl yapılır: Windows Forms uygulamasına Web tarayıcısı yetenekleri ekleme.

  3. Adlı uygulamanızda bir saniye oluşturun Form CodeForm .

  4. Öğesine bir RichTextBox denetim ekleyin CodeForm ve Dock özelliğini olarak ayarlayın Fill .

  5. Çağrılan bir ortak özellik oluşturun CodeForm 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. ButtonAdına adlı bir denetim ekleyin Button1 Form ve Click olayı izleyin. Olayları izleme hakkında daha fazla bilgi için bkz. Olaylar.

  7. Olay işleyicisine aşağıdaki kodu ekleyin 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
    

Güçlü Programlama

Değerini Document alma denenmeye başlamadan önce her zaman test edin. Geçerli sayfanın yüklenmesi tamamlandıysa Document veya bir veya daha fazla alt nesnesi başlatılmamış olabilir.

Ayrıca bkz.