HtmlDocument proporciona un contenedor administrado alrededor del objeto de documento de Internet Explorer, también conocido como el Modelo de objetos de documento (DOM) HTML. Obtiene una instancia de HtmlDocument a través de la propiedad Document del control WebBrowser.
Es posible anidar las etiquetas HTML dentro de un documento HTML. HtmlDocument representa entonces un árbol de documento cuyos elementos secundarios son instancias de la clase HtmlElement. En el ejemplo de código siguiente se muestra un archivo HTML simple.
<HTML>
<BODY>
<DIV name="Span1">Simple HTML Form</DIV>
<FORM>
<SPAN name="TextLabel">Enter Your Name:</SPAN>
<INPUT type="text" size="20" name="Text1">
</FORM>
</BODY>
</HTML>
En este ejemplo, HtmlDocument representa todo el documento dentro de las etiquetas HTML. Los objetos HtmlElement individuales representan las etiquetas BODY, DIV, FORM y SPAN.
Hay varias formas de tener acceso a los elementos de este árbol. Utilice la propiedad Body para tener acceso a la etiqueta BODY y a todos sus elementos secundarios. La propiedad ActiveElement le da el HtmlElement para el elemento de una página HTML que tiene el foco de entrada de datos del usuario. Todos los elementos de una página HTML pueden tener un nombre; la colección All proporciona acceso a cada HtmlElement utilizando su nombre como un índice. GetElementsByTagName devolverá una colección HtmlElementCollection de todos los objetos HtmlElement que tengan un nombre de etiqueta HTML determinado, como DIV o TABLE. GetElementById devolverá el elemento HtmlElement único correspondiente al identificador único suministrado. GetElementFromPoint devolverá el elemento HtmlElement situado en la pantalla, en las coordenadas de puntero proporcionadas.
También puede utilizar las colecciones Forms y Images para recorrer en iteración elementos que representan formularios de entrada y gráficos, respectivamente.
HtmlDocument se basa en las interfaces no administradas implementadas por el DOM DHTML de Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3 e IHTMLDocument4. HtmlDocument sólo expone las propiedades y los métodos utilizados con más frecuencia en estas interfaces no administradas. Puede tener acceso a todas las demás propiedades y métodos directamente utilizando la propiedad DomDocument, que puede convertir al puntero de interfaz no administrada deseado.
Un documento HTML puede contener marcos, que son las distintas ventanas que hay dentro del control WebBrowser. Cada marco muestra su propia página HTML. La colección Frames está disponible fuera de la propiedad Window. También puede utilizar la propiedad Window para cambiar el tamaño de la página mostrada, desplazarse por el documento o mostrar alertas y peticiones al usuario.
HtmlDocument expone los eventos más comunes que esperaría controlar al hospedar páginas HTML. En el caso de los eventos no expuestos directamente por la interfaz, puede agregar un controlador para el evento utilizando AttachEventHandler.
Los archivos HTML pueden contener etiquetas SCRIPT que encapsulan el código escrito en uno de los lenguajes Active Scripting, como JScript o VBScript. El método InvokeScript permite la ejecución de las propiedades y los métodos definidos en una etiqueta SCRIPT.
Nota: |
|---|
Si bien la mayoría de las propiedades, los métodos y los eventos de HtmlDocument han mantenido los mismos nombres que tienen en el DOM no administrado, algunos se han cambiado por coherencia con .NET Framework. |