Partilhar via


Como: Acessar a código código fonte HTML no modelo de objeto do documento HTML gerenciado

The DocumentStream e DocumentText sistema autônomo propriedades de WebBrowser controle retornam o HTML do documento corrente sistema autônomo ele existia quando exibido pela primeira vez. No entanto, se você modificar a página usando o método e propriedade telefonar sistema autônomo, sistema autônomo AppendChild e InnerHtml, essas alterações não aparecerão quando você telefonar DocumentStream e DocumentText. Para obter o código-código código fonte HTML mais recente para o DOM, você deve telefonar o OuterHtml propriedade no elemento HTML.

O procedimento a seguir mostra como recuperar fonte dinâmica e exibi-lo em um menu de atalho separado.

Recuperando a fonte dinâmica com a propriedade OuterHtml

  1. Criar um novo aplicativo de Formulários do Windows.Iniciar com um único Forme chamá-la Form1.

  2. Hospedar o WebBrowser controle em seu aplicativo Windows Forms e o nome WebBrowser1.Para obter mais informações, consulte Como: Adicionar recursos do navegador da Web a um aplicativo do Windows Forms.

  3. Criar um segundo Form em seu aplicativo chamado CodeForm.

  4. Adicionar um RichTextBox o controle para CodeForm e defina sua Dock propriedade para Preenchimento.

  5. Criar uma propriedade pública em CodeForm called Code.

    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
    
         public string Code
            {
                get
                {
                    if (richTextBox1.Text != null)
                    {
                        return (richTextBox1.Text);
                    }
                    else
                    {
                        return ("");
                    }
                }
                set
                {
                    richTextBox1.Text = value;
                }
            }
    
  6. Adicionar um Button controle de chamada Button1 to your Forme monitorar o Click evento. Para obter detalhes sobre o monitoramento de eventos, consulte Consumindo Eventos.

  7. Adicione o seguinte código para o manipulador de eventos Click.

    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
    
         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();
                    }
                }
            }
    

Programação robusta

Sempre teste o valor de Document antes de tentar recuperá-lo. Se a página corrente estiver concluída não carregar, Document ou um ou mais dos seus objetos filho podem não ser inicializadas.

Consulte também

Referência

Visão geral do controle WebBrowser

Outros recursos

Usando o modelo de objeto gerenciado do documento HTML