Share via


Como acessar o Document Object Model HTML gerenciado

É possível acessar o Document Object Model (DOM) do HTML gerenciado a partir de dois tipos de aplicativos:

  • Um aplicativo do Windows Forms (.exe) que hospedou o controle WebBrowser gerenciado. Essas duas tecnologias se complementam entre si, com o controle WebBrowser exibindo a página para o usuário e o DOM do HTML representando a estrutura lógica do documento.

  • Um UserControl do Windows Forms hospedado dentro do Internet Explorer. É possível acessar o DOM do HTML que representa a página na qual o UserControl está hospedado para alterar a estrutura do documento ou abrir caixas de diálogo restritas, entre muitas outras possibilidades.

Para acessar o DOM a partir de um aplicativo do Windows Forms

  1. Hospede um controle WebBrowser dentro do aplicativo do Windows Forms e monitore pelo evento DocumentCompleted. Para obter detalhes sobre controles de host e monitoramento de eventos, consulte Eventos.

  2. Recupere o HtmlDocument da página atual acessando a propriedade Document do controle WebBrowser.

Para acessar o DOM a partir de um UserControl hospedado no Internet Explorer

  1. Crie sua própria classe derivada personalizada da classe UserControl. Para mais informações, consulte Como criar controles compostos.

  2. Coloque o seguinte código dentro do manipulador de eventos Carregar do UserControl:

HtmlDocument doc = null;

private void UserControl1_Load(object sender, EventArgs e)
{
    if (this.Site != null)
    {
        doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
    }
}
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If (Me.Site IsNot Nothing) Then
        Dim Doc As HtmlDocument = CType(Me.Site.GetService(Type.GetType("System.Windows.Forms.HtmlDocument")), HtmlDocument)
    End If
End Sub

Programação robusta

  1. Ao usar o DOM através do controle WebBrowser, é sempre necessário esperar até o evento DocumentCompleted ocorrer antes de tentar acessar a propriedade Document do controle WebBrowser. O evento DocumentCompleted é elevado após o documento inteiro ser carregado, se o DOM for usado antes disso, haverá o risco de causar uma exceção de tempo de execução no aplicativo.

Segurança do .NET Framework

  1. O aplicativo ou o UserControl exigirá confiança total para acessar o DOM do HTML gerenciado. Se você estiver implantando um aplicativo do Windows Forms usando o ClickOnce, poderá solicitar confiança total usando a Elevação de Permissão ou a Implantação de Aplicativo Confiável; consulte Protegendo aplicativos ClickOnce para obter detalhes.

Confira também