Postupy: Přístup ke zdroji HTML ve spravovaném objektu modelu dokumentu HTML

DocumentTextWebBrowser Vlastnosti DocumentStream ovládacího prvku 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í, například AppendChild a InnerHtml, tyto změny se nezobrazí při volání DocumentStream a DocumentText. Chcete-li získat nejaktuálnější zdroj HTML pro DOM, je nutné volat OuterHtml vlastnost element HTML.

Následující postup ukazuje, jak načíst dynamický zdroj a zobrazit ho v samostatné místní nabídce.

Načítání dynamického zdroje pomocí vlastnosti OuterHtml

  1. Vytvořte novou aplikaci model Windows Forms. Začněte jedním a Formpojmenujte ho Form1.

  2. Hostujte WebBrowser ovládací prvek v aplikaci model Windows Forms a pojmenujte ho WebBrowser1. Další informace naleznete v tématu Postupy: Přidání funkcí webového prohlížeče do aplikace model Windows Forms.

  3. V aplikaci vytvořte sekundu Form s názvem CodeForm.

  4. RichTextBox Přidejte ovládací prvek a CodeForm nastavte jeho Dock vlastnost na Fill.

  5. Vytvořte veřejnou vlastnost CodeForm s názvem 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. Button Přidejte do události ovládací prvek s názvem Button1 a sledujte FormClick událost. Podrobnosti o událostech monitorování najdete v tématu Události.

  7. Do obslužné rutiny Click události 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é