Postupy: Přístup ke zdroji HTML ve spravovaném objektovém modelu dokumentu HTML
Vlastnosti DocumentStream a DocumentText ovládacího prvku WebBrowser vrátí kód HTML aktuálního dokumentu, jak existoval při prvním zobrazení. Pokud však upravíte stránku pomocí metody a volání vlastností, jako jsou AppendChild a InnerHtml, tyto změny se nezobrazí při volání DocumentStream a DocumentText. Chcete-li získat nejvíce up-to-date zdroj HTML pro DOM, musíte volat OuterHtml vlastnost u elementu HTML.
Následující postup ukazuje, jak načíst dynamický zdroj a zobrazit ho v samostatné kontextové nabídce.
Načítání dynamického zdroje pomocí vlastnosti OuterHtml
Vytvořte novou aplikaci Windows Forms. Začněte jedním Forma nazvěte ho
Form1
.Hostujte ovládací prvek WebBrowser v aplikaci Windows Forms a pojmenujte ho
WebBrowser1
. Více informací naleznete v části Jak na to: Přidání funkcí webového prohlížeče do aplikace Windows Forms.Ve své aplikaci vytvořte druhý Form s názvem
CodeForm
.Přidejte ovládací prvek RichTextBox k
CodeForm
a nastavte jeho vlastnost Dock naFill
.Vytvořte veřejnou vlastnost na
CodeForm
nazvanouCode
.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
Přidejte do Formovládací prvek Button s názvem
Button1
a sledujte událost Click. Podrobnosti o monitorování událostí najdete v tématu Události.Do obslužné rutiny události Click přidejte následující kód.
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
Robustní programování
Před pokusem o načtení vždy otestujte hodnotu Document. Pokud aktuální stránka není dokončena načítání, Document nebo jeden nebo více jeho podřízených objektů nemusí být inicializován.
Viz také
.NET Desktop feedback