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 control WebBrowser.
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 dinámicamente HTML TABLE
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 representa así 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 BODY
etiquetas , FORM
DIV
y 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 elemento 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 del puntero del mouse proporcionadas.
También puede usar la Forms colección y Images para recorrer en iteración elementos que representan formularios de entrada de usuario y gráficos, respectivamente.
HtmlDocument se basa en las interfaces no administradas implementadas por el DOM DHTML de Internet Explorer: IHTMLDocument
, IHTMLDocument2
, IHTMLDocument3
y 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 marco 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, desplazarse por el documento o mostrar alertas y avisos al usuario.
HtmlDocument expone los eventos más comunes que espera controlar al hospedar páginas HTML. Para 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 el código escrito en uno de los lenguajes de scripting activo, 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 han cambiado por coherencia con .NET Framework.
Propiedades
ActiveElement |
Proporciona el elemento HtmlElement que tiene actualmente el foco de entrada del usuario. |
ActiveLinkColor |
Obtiene o establece el Color de un hipervínculo cuando un usuario hace clic en él. |
All |
Obtiene una instancia de HtmlElementCollection, que almacena todos los objetos HtmlElement para el documento. |
BackColor |
Obtiene o establece el color de fondo del documento HTML. |
Body |
Obtiene el objeto HtmlElement para la etiqueta |
Cookie |
Obtiene o establece las cookies HTTP asociadas a este documento. |
DefaultEncoding |
Obtiene la codificación utilizada de manera predeterminada para el documento actual. |
Domain |
Obtiene o establece la cadena que describe el dominio de este documento por motivos de seguridad. |
DomDocument |
Obtiene el puntero de interfaz no administrada 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 del 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 que hay dentro de este documento HTML. |
RightToLeft |
Obtiene o establece la dirección del texto del 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 en las páginas HTML que el usuario ya ha visitado. |
Window |
Obtiene el objeto HtmlWindow asociado con este documento. |
Métodos
AttachEventHandler(String, EventHandler) |
Agrega un controlador de eventos para el evento de DOM de HTML indicado. |
CreateElement(String) |
Crea un nuevo |
DetachEventHandler(String, EventHandler) |
Quita un controlador de eventos de un evento con nombre en el DOM de HTML. |
Equals(Object) |
Prueba el objeto para ver si es igual que el objeto actual. |
ExecCommand(String, Boolean, Object) |
Ejecuta el comando especificado sobre el documento. |
Focus() |
Establece el foco de entrada del usuario en el documento actual. |
GetElementById(String) |
Recupera un único HtmlElement mediante el atributo del |
GetElementFromPoint(Point) |
Recupera el elemento HTML situado en las coordenadas del cliente especificadas. |
GetElementsByTagName(String) |
Recupera una colección de elementos con la etiqueta HTML especificada. |
GetHashCode() |
Recupera el código hash para este objeto. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
InvokeScript(String) |
Ejecuta una función de Active Scripting definida en una página HTML. |
InvokeScript(String, Object[]) |
Ejecuta una función de Active Scripting definida en una página HTML. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OpenNew(Boolean) |
Obtiene un nuevo HtmlDocument que se utilizará con el método Write(String). |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Write(String) |
Escribe una nueva página HTML. |
Operadores
Equality(HtmlDocument, HtmlDocument) |
Devuelve un valor que indica si las instancias especificadas de HtmlDocument representan el mismo valor. |
Inequality(HtmlDocument, HtmlDocument) |
Devuelve un valor que indica si las instancias especificadas de HtmlDocument no representan el mismo valor. |
Eventos
Click |
Se produce cuando el usuario hace clic en cualquier lugar del documento. |
ContextMenuShowing |
Se produce cuando el usuario solicita mostrar el menú contextual del documento. |
Focusing |
Se produce antes de dar el foco al documento. |
LosingFocus |
Se produce mientras el foco está abandonando un control. |
MouseDown |
Se produce cuando el usuario hace clic con el botón primario del mouse. |
MouseLeave |
Se produce cuando el mouse ya no se está desplazando sobre el documento. |
MouseMove |
Se produce cuando el puntero del mouse se mueve sobre el documento. |
MouseOver |
Se produce cuando el puntero del mouse se mueve sobre el documento. |
MouseUp |
Se produce cuando el usuario suelta el botón primario del mouse. |
Stop |
Se produce cuando se detiene la navegación a otra página web. |