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
Criar um novo aplicativo de Formulários do Windows.Iniciar com um único Forme chamá-la Form1.
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.
Criar um segundo Form em seu aplicativo chamado CodeForm.
Adicionar um RichTextBox o controle para CodeForm e defina sua Dock propriedade para Preenchimento.
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; } }
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.
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