HtmlDocument Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece acesso programático de topo a um documento HTML alojado pelo WebBrowser controlo.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Herança
-
HtmlDocument
Exemplos
O exemplo de código seguinte utiliza dados da base de dados Northwind para criar um HTML TABLE algoritmo dinamicamente usando CreateElement. O AppendChild método também é utilizado, primeiro para adicionar células (TD elementos) às linhas (TR elementos), depois para adicionar linhas à tabela e, finalmente, para anexar a tabela ao final do documento atual. O exemplo de código exige que a sua aplicação tenha um WebBrowser controlo chamado WebBrowser1. O código deve ser chamado depois de um documento ter sido carregado.
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
Observações
HtmlDocument fornece um wrapper gerido em torno do objeto documento da Internet Explorer, também conhecido como HTML Document Object Model (DOM). Obtém-se uma instância de HtmlDocument através da Document propriedade do WebBrowser controlo.
As etiquetas HTML dentro de um documento HTML podem ser aninhadas umas dentro das outras. HtmlDocument Assim, representa uma árvore de documentos, cujos filhos são instâncias da HtmlElement classe. O exemplo de código seguinte mostra um ficheiro HTML simples.
<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>
Neste exemplo, HtmlDocument representa todo o documento dentro das HTML etiquetas. As BODYetiquetas , DIV, FORM e SPAN são representadas por objetos individuais HtmlElement .
Existem várias formas de aceder aos elementos desta árvore. Use a Body propriedade para aceder à BODY etiqueta e a todos os seus filhos. A ActiveElement propriedade dá-te o HtmlElement elemento numa página HTML que tem foco na entrada do utilizador. Todos os elementos dentro de uma página HTML podem ter um nome; a All coleção oferece acesso a cada um HtmlElement usando o seu nome como índice.
GetElementsByTagName devolverá um HtmlElementCollection de todos os HtmlElement objetos com um dado nome de etiqueta HTML, como DIV ou TABLE.
GetElementById devolverá o single HtmlElement correspondente ao ID único que fornecer.
GetElementFromPoint irá devolver o HtmlElement que pode ser encontrado no ecrã nas coordenadas do ponteiro do rato fornecidas.
Também pode usar a Forms coleção and Images para iterar através de elementos que representam formulários de entrada do utilizador e gráficos, respetivamente.
HtmlDocument baseia-se nas interfaces não geridas implementadas pelo DOM DHTML da Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3 e IHTMLDocument4. Apenas as propriedades e métodos mais usados nestas interfaces não geridas são expostos por HtmlDocument. Pode aceder diretamente a todas as outras propriedades e métodos usando essa DomDocument propriedade, que pode transmitir para o ponteiro de interface não gerido desejado.
Um documento HTML pode conter frames, que são janelas diferentes dentro do WebBrowser controlo. Cada frame apresenta a sua própria página HTML. A Frames coleção está disponível através da Window propriedade. Também pode usar a Window propriedade para redimensionar a página apresentada, deslocar o documento ou mostrar alertas e avisos ao utilizador.
HtmlDocument expõe os eventos mais comuns que esperaria lidar ao hospedar páginas HTML. Para eventos não expostos diretamente pela interface, pode adicionar um handler para o evento usando AttachEventHandler.
Os ficheiros HTML podem conter SCRIPT etiquetas que encapsulam código escrito numa das linguagens Active Scripting, como JScript ou VBScript. O InvokeScript método permite a execução de propriedades e métodos definidos numa SCRIPT etiqueta.
Note
Embora a maioria das propriedades, métodos e eventos em HtmlDocument tenham mantido os mesmos nomes que no DOM não gerido, alguns foram alterados para garantir consistência com o Framework .NET.
Propriedades
| Name | Description |
|---|---|
| ActiveElement |
Fornece o HtmlElement que atualmente tem foco na entrada do utilizador. |
| ActiveLinkColor |
Obtém ou definem o Color link de um hyperlink quando clicados por um utilizador. |
| All |
Obtém uma instância de HtmlElementCollection, que armazena todos HtmlElement os objetos do documento. |
| BackColor |
Obtém ou define a cor de fundo do documento HTML. |
| Body |
Recebe a HtmlElement etiqueta |
| Cookie |
Obtém ou define os cookies HTTP associados a este documento. |
| DefaultEncoding |
Obtém a codificação usada por defeito para o documento atual. |
| Domain |
Obtém ou define a cadeia que descreve o domínio deste documento para fins de segurança. |
| DomDocument |
Obtém o ponteiro de interface não gerida para este HtmlDocument. |
| Encoding |
Obtém ou define a codificação de caracteres para este documento. |
| Focused |
Recebe um valor que indica se o documento tem foco de entrada do utilizador. |
| ForeColor |
Obtém ou define a cor do texto do documento. |
| Forms |
Obtém uma coleção de todos os |
| Images |
Obtém uma coleção de todas as etiquetas de imagem do documento. |
| LinkColor |
Obtém ou definem a cor dos hiperlinks. |
| Links |
Obtém uma lista de todos os hiperlinks dentro deste documento HTML. |
| RightToLeft |
Obtém ou define a direção do texto no documento atual. |
| Title |
Obtém ou define o valor de texto da |
| Url |
Obtém o URL que descreve a localização deste documento. |
| VisitedLinkColor |
Obtém ou define a cor dos links para páginas HTML que o utilizador já visitou. |
| Window |
Recebe o HtmlWindow que está associado a este documento. |
Métodos
| Name | Description |
|---|---|
| AttachEventHandler(String, EventHandler) |
Adiciona um gestor de eventos para o evento HTML DOM nomeado. |
| CreateElement(String) |
Cria um novo |
| DetachEventHandler(String, EventHandler) |
Remove um gestor de eventos de um evento nomeado no DOM HTML. |
| Equals(Object) |
Testa a igualdade do objeto em relação ao objeto atual. |
| ExecCommand(String, Boolean, Object) |
Executa o comando especificado contra o documento. |
| Focus() |
Define o foco da entrada do utilizador no documento atual. |
| GetElementById(String) |
Recupera um único HtmlElement usando o atributo |
| GetElementFromPoint(Point) |
Recupera o elemento HTML localizado nas coordenadas do cliente especificadas. |
| GetElementsByTagName(String) |
Recuperar uma coleção de elementos com a tag HTML especificada. |
| GetHashCode() |
Recupera o código hash deste objeto. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InvokeScript(String, Object[]) |
Executa uma função Active Scripting definida numa página HTML. |
| InvokeScript(String) |
Executa uma função Active Scripting definida numa página HTML. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OpenNew(Boolean) |
Obtém um novo HtmlDocument para usar com o Write(String) método. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| Write(String) |
Escreve uma nova página HTML. |
Operadores
| Name | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Devolve um valor que indica se as instâncias especificadas HtmlDocument representam o mesmo valor. |
| Inequality(HtmlDocument, HtmlDocument) |
Devolve um valor que indica se as instâncias especificadas HtmlDocument não representam o mesmo valor. |
evento
| Name | Description |
|---|---|
| Click |
Ocorre quando o utilizador clica em qualquer parte do documento. |
| ContextMenuShowing |
Ocorre quando o utilizador solicita para mostrar o menu contextual do documento. |
| Focusing |
Ocorre antes de o documento ser dada atenção. |
| LosingFocus |
Acontece enquanto o foco está a sair de um controlo. |
| MouseDown |
Ocorre quando o utilizador clica no botão esquerdo do rato. |
| MouseLeave |
Ocorre quando o rato já não está a pairar sobre o documento. |
| MouseMove |
Ocorre quando o rato é movido sobre o documento. |
| MouseOver |
Ocorre quando o rato é movido sobre o documento. |
| MouseUp |
Ocorre quando o utilizador solta o botão esquerdo do rato. |
| Stop |
Ocorre quando a navegação para outra página Web é interrompida. |