Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As propriedades DocumentStream e DocumentText no controle WebBrowser retornam o HTML do documento atual como ele existia quando ele foi exibido pela primeira vez. No entanto, se você modificar a página usando chamadas de método e propriedade, como AppendChild e InnerHtml, essas alterações não aparecerão quando você chamar DocumentStream e DocumentText. Para obter a fonte HTML mais atualizada do DOM, é necessário chamar a OuterHtml propriedade no elemento HTML.
O procedimento a seguir mostra como recuperar a origem dinâmica e exibi-la em um menu de atalho separado.
Recuperando a origem dinâmica com a propriedade OuterHtml
Crie um novo aplicativo do Windows Forms. Comece com um único Forme chame-o de
Form1.Hospede o controle WebBrowser em seu aplicativo do Windows Forms e nomeie-o
WebBrowser1. Para obter mais informações, consulte Como adicionar recursos de navegador da Web a um aplicativo do Windows Forms.Crie um segundo Form em seu aplicativo chamado
CodeForm.Adicione um controle RichTextBox para
CodeForme defina sua propriedade Dock comoFill.Crie uma propriedade pública em
CodeFormchamadaCode.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 PropertyAdicione um controle Button chamado
Button1ao seu Form e monitore o evento Click. Para obter detalhes sobre como monitorar eventos, consulte Eventos.Adicione o código a seguir ao manipulador de eventos Click.
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
Programação robusta
Sempre teste o valor de Document antes de tentar recuperá-lo. Se a página atual não tiver terminado de carregar, o Document ou um ou mais de seus objetos filhos podem não ser inicializados.
Consulte também
.NET Desktop feedback