HtmlDocument Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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. |