Sdílet prostřednictvím


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

  1. Vytvořte novou aplikaci Windows Forms. Začněte jedním Forma nazvěte ho Form1.

  2. 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.

  3. Ve své aplikaci vytvořte druhý Form s názvem CodeForm.

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

  5. Vytvořte veřejnou vlastnost na CodeForm nazvanou 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. 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.

  7. 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é