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
Utwórz nową aplikację Windows Forms. Rozpocznij od pojedynczego Formi nazwij go
Form1
.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.Utwórz drugą Form w aplikacji o nazwie
CodeForm
.Dodaj kontrolkę RichTextBox do
CodeForm
i ustaw jej właściwość Dock naFill
.Utwórz właściwość publiczną w
CodeForm
o nazwieCode
.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
Dodaj kontrolkę Button o nazwie
Button1
do Formi monitoruj zdarzenie Click. Aby uzyskać szczegółowe informacje na temat monitorowania zdarzeń, zobacz Events.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ż
.NET Desktop feedback