Compartir vía


HtmlDocument Clase

Definición

Proporciona acceso mediante programación de nivel superior a un documento HTML hospedado por el WebBrowser control .

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Herencia
HtmlDocument

Ejemplos

En el ejemplo de código siguiente se usan datos de la base de datos Northwind para crear un objeto HTML TABLE dinámicamente mediante CreateElement. El AppendChild método también se usa, primero para agregar celdas (TD elementos) a filas (TR elementos), luego para agregar filas a la tabla y, por último, para anexar la tabla al final del documento actual. El ejemplo de código requiere que la aplicación tenga un WebBrowser control denominado WebBrowser1. Se debe llamar al código después de cargar un documento.

private void DisplayCustomersTable()
{
    DataSet customersSet = new DataSet();
    DataTable customersTable = null;
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
    sda.Fill(customersTable);
    customersTable = customersSet.Tables[0];

    if (webBrowser1.Document != null)
    {
        HtmlElement tableRow = null;
        HtmlElement headerElem = null;

        HtmlDocument doc = webBrowser1.Document;
        HtmlElement tableElem = doc.CreateElement("TABLE");
        doc.Body.AppendChild(tableElem);

        HtmlElement tableHeader = doc.CreateElement("THEAD");
        tableElem.AppendChild(tableHeader);
        tableRow = doc.CreateElement("TR");
        tableHeader.AppendChild(tableRow);

        foreach (DataColumn col in customersTable.Columns)
        {
            headerElem = doc.CreateElement("TH");
            headerElem.InnerText = col.ColumnName;
            tableRow.AppendChild(headerElem);
        }

        // Create table rows.
        HtmlElement tableBody = doc.CreateElement("TBODY");
        tableElem.AppendChild(tableBody);
        foreach (DataRow dr in customersTable.Rows)
        {
            tableRow = doc.CreateElement("TR");
            tableBody.AppendChild(tableRow);
            foreach (DataColumn col in customersTable.Columns)
            {
                Object dbCell = dr[col];
                HtmlElement tableCell = doc.CreateElement("TD");
                if (!(dbCell is DBNull))
                {
                    tableCell.InnerText = dbCell.ToString();
                }
                tableRow.AppendChild(tableCell);
            }
        }
    }
}
Private Sub DisplayCustomersTable()
    ' Initialize the database connection.
    Dim CustomerData As New DataSet()
    Dim CustomerTable As DataTable

    Try
        Dim DBConn As New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;")
        Dim DBQuery As New SqlDataAdapter("SELECT * FROM CUSTOMERS", DBConn)
        DBQuery.Fill(CustomerData)
    Catch dbEX As DataException

    End Try

    CustomerTable = CustomerData.Tables("Customers")

    If (Not (WebBrowser1.Document Is Nothing)) Then
        With WebBrowser1.Document
            Dim TableElem As HtmlElement = .CreateElement("TABLE")
            .Body.AppendChild(TableElem)

            Dim TableRow As HtmlElement

            ' Create the table header.
            Dim TableHeader As HtmlElement = .CreateElement("THEAD")
            TableElem.AppendChild(TableHeader)
            TableRow = .CreateElement("TR")
            TableHeader.AppendChild(TableRow)

            Dim HeaderElem As HtmlElement
            For Each Col As DataColumn In CustomerTable.Columns
                HeaderElem = .CreateElement("TH")
                HeaderElem.InnerText = Col.ColumnName
                TableRow.AppendChild(HeaderElem)
            Next

            ' Create table rows.
            Dim TableBody As HtmlElement = .CreateElement("TBODY")
            TableElem.AppendChild(TableBody)
            For Each Row As DataRow In CustomerTable.Rows
                TableRow = .CreateElement("TR")
                TableBody.AppendChild(TableRow)
                For Each Col As DataColumn In CustomerTable.Columns
                    Dim Item As Object = Row(Col)
                    Dim TableCell As HtmlElement = .CreateElement("TD")
                    If Not (TypeOf (Item) Is DBNull) Then
                        TableCell.InnerText = CStr(Item)
                    End If
                    TableRow.AppendChild(TableCell)
                Next
            Next

        End With
    End If
End Sub

Comentarios

HtmlDocument proporciona un contenedor administrado alrededor del objeto de documento de Internet Explorer, también conocido como modelo de objetos de documento HTML (DOM). Obtiene una instancia de a través de HtmlDocument la Document propiedad del WebBrowser control .

Las etiquetas HTML dentro de un documento HTML se pueden anidar entre sí. HtmlDocument por lo tanto, representa un árbol de documentos, cuyos elementos secundarios son instancias de la HtmlElement clase . 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 HTML etiquetas. Las BODYetiquetas , FORMDIVy SPAN se representan mediante objetos individualesHtmlElement.

Hay varias maneras de acceder a los elementos de este árbol. Utilice la Body propiedad para tener acceso a la BODY etiqueta y a todos sus elementos secundarios. La ActiveElement propiedad proporciona el HtmlElement para el elemento en una página HTML que tiene el foco de entrada del usuario. Todos los elementos de una página HTML pueden tener un nombre; La All colección proporciona acceso a cada uno HtmlElement con su nombre como índice. GetElementsByTagName devolverá un HtmlElementCollection de todos los HtmlElement objetos con un nombre de etiqueta HTML determinado, como DIV o TABLE. GetElementById devolverá el único HtmlElement correspondiente al identificador único que proporcione. GetElementFromPoint devolverá el HtmlElement que se puede encontrar en la pantalla en las coordenadas de puntero del mouse proporcionadas.

También puede usar la Forms colección y Images para recorrer en iteración los elementos que representan los formularios de entrada de usuario y los gráficos, respectivamente.

HtmlDocument se basa en las interfaces no administradas implementadas por el DOM DHTML de Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3y IHTMLDocument4. Solo las propiedades y métodos usados con más frecuencia en estas interfaces no administradas se exponen mediante HtmlDocument. Puede acceder a todas las demás propiedades y métodos directamente mediante la DomDocument propiedad , que puede convertir al puntero de interfaz no administrado deseado.

Un documento HTML puede contener marcos, que son ventanas diferentes dentro del WebBrowser control. Cada fotograma muestra su propia página HTML. La Frames colección está disponible a través de la Window propiedad . También puede usar la propiedad para cambiar el Window tamaño de la página mostrada, desplazar el documento o mostrar alertas y avisos al usuario.

HtmlDocument expone los eventos más comunes que se esperarían 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 mediante AttachEventHandler.

Los archivos HTML pueden contener SCRIPT etiquetas que encapsulan código escrito en uno de los lenguajes active Scripting, como JScript o VBScript. El InvokeScript método proporciona la ejecución de propiedades y métodos definidos en una SCRIPT etiqueta.

Nota:

Aunque 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 para mantener la coherencia con .NET Framework.

Propiedades

Nombre Description
ActiveElement

Proporciona el HtmlElement objeto que actualmente tiene el foco de entrada del usuario.

ActiveLinkColor

Obtiene o establece el Color de un hipervínculo al hacer clic en un usuario.

All

Obtiene una instancia de HtmlElementCollection, que almacena todos los HtmlElement objetos del documento.

BackColor

Obtiene o establece el color de fondo del documento HTML.

Body

Obtiene para HtmlElement la BODY etiqueta .

Cookie

Obtiene o establece las cookies HTTP asociadas a este documento.

DefaultEncoding

Obtiene la codificación usada de forma predeterminada para el documento actual.

Domain

Obtiene o establece la cadena que describe el dominio de este documento con fines de seguridad.

DomDocument

Obtiene el puntero de interfaz no administrado para este HtmlDocument.

Encoding

Obtiene o establece la codificación de caracteres para este documento.

Focused

Obtiene un valor que indica si el documento tiene el foco de entrada del usuario.

ForeColor

Obtiene o establece el color de texto del documento.

Forms

Obtiene una colección de todos los <FORM> elementos del documento.

Images

Obtiene una colección de todas las etiquetas de imagen del documento.

LinkColor

Obtiene o establece el color de los hipervínculos.

Links

Obtiene una lista de todos los hipervínculos de este documento HTML.

RightToLeft

Obtiene o establece la dirección del texto en el documento actual.

Title

Obtiene o establece el valor de texto de la <TITLE> etiqueta en el documento HTML actual.

Url

Obtiene la dirección URL que describe la ubicación de este documento.

VisitedLinkColor

Obtiene o establece el color de los vínculos a páginas HTML que el usuario ya ha visitado.

Window

Obtiene el HtmlWindow asociado a este documento.

Métodos

Nombre Description
AttachEventHandler(String, EventHandler)

Agrega un controlador de eventos para el evento DOM HTML con nombre.

CreateElement(String)

Crea un nuevo HtmlElement tipo de etiqueta HTML especificado.

DetachEventHandler(String, EventHandler)

Quita un controlador de eventos de un evento con nombre en el DOM HTML.

Equals(Object)

Comprueba la igualdad del objeto con respecto al objeto actual.

ExecCommand(String, Boolean, Object)

Ejecuta el comando especificado en el documento.

Focus()

Establece el foco de entrada del usuario en el documento actual.

GetElementById(String)

Recupera un solo HtmlElement uso del atributo del ID elemento como clave de búsqueda.

GetElementFromPoint(Point)

Recupera el elemento HTML ubicado en las coordenadas de cliente especificadas.

GetElementsByTagName(String)

Recupere una colección de elementos con la etiqueta HTML especificada.

GetHashCode()

Recupera el código hash de este objeto.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InvokeScript(String, Object[])

Ejecuta una función de scripting activo definida en una página HTML.

InvokeScript(String)

Ejecuta una función de scripting activo definida en una página HTML.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OpenNew(Boolean)

Obtiene un nuevo HtmlDocument objeto que se va a usar con el Write(String) método .

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Write(String)

Escribe una nueva página HTML.

Operadores

Nombre Description
Equality(HtmlDocument, HtmlDocument)

Devuelve un valor que indica si las instancias especificadas HtmlDocument representan el mismo valor.

Inequality(HtmlDocument, HtmlDocument)

Devuelve un valor que indica si las instancias especificadas HtmlDocument no representan el mismo valor.

Eventos

Nombre Description
Click

Se produce cuando el usuario hace clic en cualquier parte del documento.

ContextMenuShowing

Se produce cuando el usuario solicita mostrar el menú contextual del documento.

Focusing

Se produce antes de que el foco se dé al documento.

LosingFocus

Se produce mientras el foco deja un control.

MouseDown

Se produce cuando el usuario hace clic en el botón izquierdo del mouse.

MouseLeave

Se produce cuando el mouse ya no mantiene el puntero sobre el documento.

MouseMove

Se produce cuando el mouse se mueve sobre el documento.

MouseOver

Se produce cuando el mouse se mueve sobre el documento.

MouseUp

Se produce cuando el usuario suelta el botón izquierdo del mouse.

Stop

Se produce cuando se detiene la navegación a otra página web.

Se aplica a

Consulte también