Bagikan melalui


Cara: Mengakses Sumber HTML di Model Objek Dokumen HTML Terkelola

Properti DocumentStream dan DocumentText pada kontrol WebBrowser mengembalikan HTML dokumen saat ini seperti yang ada saat pertama kali ditampilkan. Namun, jika Anda mengubah halaman menggunakan panggilan metode dan properti seperti AppendChild dan InnerHtml, perubahan ini tidak akan muncul saat Anda memanggil DocumentStream dan DocumentText. Untuk mendapatkan sumber HTML paling up-to-date untuk DOM, Anda harus memanggil properti OuterHtml pada elemen HTML.

Prosedur berikut menunjukkan cara mengambil sumber dinamis dan menampilkannya di menu pintasan terpisah.

Mengambil sumber dinamis dengan properti OuterHtml

  1. Buat aplikasi Windows Forms baru. Mulailah dengan satu Form, dan sebut saja Form1.

  2. Host kontrol WebBrowser di aplikasi Windows Forms Anda, dan beri nama WebBrowser1. Untuk informasi selengkapnya, lihat Cara: Menambahkan Kemampuan Browser Web ke Aplikasi Windows Forms.

  3. Buat Form tambahan di aplikasi Anda yang disebut CodeForm.

  4. Tambahkan kontrol RichTextBox ke CodeForm dan atur properti Dock ke Fill.

  5. Buat properti publik di CodeForm yang disebut 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. Tambahkan kontrol Button bernama Button1 ke FormAnda, dan pantau peristiwa Click. Untuk detail tentang pemantauan peristiwa, lihat Peristiwa.

  7. Tambahkan kode berikut ke penanganan aktivitas 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
    

Pemrograman yang Kuat

Selalu uji nilai Document sebelum mencoba mengambilnya. Jika halaman saat ini belum selesai dimuat, Document atau satu atau beberapa objek turunannya mungkin tidak diinisialisasi.

Lihat juga