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

DocumentStream Denetimdeki WebBrowser ve DocumentText özellikleri, geçerli belgenin HTML'sini ilk görüntülendiğinde olduğu gibi döndürür. Ancak ve gibi AppendChild yöntem ve özellik çağrılarını kullanarak sayfayı değiştirirseniz ve InnerHtmlDocumentTextçağrısı yaptığınızda DocumentStream bu değişiklikler görünmez. DOM için en güncel HTML kaynağını almak için, HTML öğesinde özelliğini çağırmanız OuterHtml gerekir.

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

OuterHtml özelliğiyle dinamik kaynağı alma

  1. Yeni bir Windows Forms uygulaması oluşturun. Tek Formbir ile başlayın ve adını yazın Form1.

  2. Denetimi Windows Forms uygulamanızda barındırın WebBrowser ve olarak adlandırın WebBrowser1. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms Uygulamasına Web Tarayıcısı Özellikleri Ekleme.

  3. Uygulamanızda adlı CodeFormbir saniye Form oluşturun.

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

  5. üzerinde CodeForm adlı Codebir ortak özellik oluşturun.

    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. olayı için ve izleyicinize FormClick adlı Button1 bir Button denetim ekleyin. Olayları izleme hakkında ayrıntılı bilgi için bkz . Olaylar.

  7. Olay işleyicisine Click aşağıdaki kodu ekleyin.

    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

Almayı denemeden önce değerini Document her zaman test edin. Geçerli sayfanın yüklenmesi Document tamamlanmadıysa veya bir veya daha fazla alt nesnesi başlatılamayabilir.

Ayrıca bkz.