HtmlDocument Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje programový přístup k dokumentu HTML hostovaného ovládacím WebBrowser prvku na nejvyšší úrovni.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Dědičnost
-
HtmlDocument
Příklady
Následující příklad kódu používá data z databáze Northwind k vytvoření HTML TABLE dynamicky pomocí CreateElement. Metoda AppendChild se také používá, nejprve přidat buňky (TD prvky) do řádků (TR elementy), pak přidat řádky do tabulky a nakonec připojit tabulku na konec aktuálního dokumentu. Příklad kódu vyžaduje, aby vaše aplikace má WebBrowser ovládací prvek s názvem WebBrowser1. Kód by se měl volat po načtení dokumentu.
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
Poznámky
HtmlDocument poskytuje spravovaný obálku kolem objektu dokumentu aplikace Internet Explorer, označovaný také jako model DOM (Document Object Model). Získáte instanci HtmlDocument prostřednictvím Document vlastnosti WebBrowser ovládacího prvku.
Značky HTML uvnitř dokumentu HTML lze vnořit do sebe. HtmlDocument představuje strom dokumentu, jehož podřízené HtmlElement položky jsou instance třídy. Následující příklad kódu ukazuje jednoduchý soubor HTML.
<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>
V tomto příkladu HtmlDocument představuje celý dokument uvnitř HTML značek. , BODYDIVFORM a SPAN značky jsou reprezentovány jednotlivými HtmlElement objekty.
K prvkům v tomto stromu můžete přistupovat několika způsoby.
Body Vlastnost použijte pro přístup BODY ke značce a všem jejím podřízeným položkou. Vlastnost ActiveElement poskytuje HtmlElement prvek na stránce HTML, která má fokus vstupu uživatele. Všechny prvky na stránce HTML mohou mít název; kolekce All poskytuje přístup k jednotlivým HtmlElement souborům s použitím jeho názvu jako indexu.
GetElementsByTagName vrátí HtmlElementCollection všechny HtmlElement objekty s daným názvem značky HTML, například DIV nebo TABLE.
GetElementById vrátí jeden odpovídající HtmlElement jedinečnému ID, které zadáte.
GetElementFromPoint vrátí HtmlElement , které lze najít na obrazovce na zadaných souřadnicích ukazatele myši.
K iteraci prvků, které představují formuláře uživatelského vstupu a grafiku, můžete také použít Forms tuto a Images kolekci.
HtmlDocument je založena na nespravovaných rozhraních implementovaných nástrojem DHTML DOM aplikace Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3a IHTMLDocument4. Pouze nejčastěji používané vlastnosti a metody na těchto nespravovaných rozhraních jsou vystaveny HtmlDocument. Ke všem ostatním vlastnostem a metodám můžete přistupovat přímo pomocí DomDocument vlastnosti, kterou můžete přetypovat na požadovaný nespravovaný ukazatel rozhraní.
Dokument HTML může obsahovat rámce, což jsou různá okna uvnitř WebBrowser ovládacího prvku. Každý rámeček zobrazuje vlastní stránku HTML. Kolekce Frames je k dispozici prostřednictvím Window vlastnosti. Vlastnost můžete také použít Window ke změně velikosti zobrazené stránky, posouvání dokumentu nebo zobrazení upozornění a výzev k uživateli.
HtmlDocument zveřejňuje nejběžnější události, které byste očekávali při hostování stránek HTML. U událostí, které nejsou vystaveny přímo rozhraním, můžete přidat obslužnou rutinu události pomocí AttachEventHandler.
Soubory HTML mohou obsahovat SCRIPT značky, které zapouzdřují kód napsaný v jednom z aktivních skriptovacího jazyka, jako je JScript nebo VBScript. Metoda InvokeScript poskytuje spuštění vlastností a metod definovaných ve SCRIPT značce.
Poznámka:
Zatímco většina vlastností, metod a událostí na nich HtmlDocument uchovává stejné názvy jako v nespravovaném modelu DOM, některé se změnily kvůli konzistenci s rozhraním .NET Framework.
Vlastnosti
| Name | Description |
|---|---|
| ActiveElement |
Poskytuje aktuálně fokus HtmlElement vstupu uživatele. |
| ActiveLinkColor |
Získá nebo nastaví Color hypertextový odkaz po kliknutí uživatelem. |
| All |
Získá instanci HtmlElementCollection, který ukládá všechny HtmlElement objekty pro dokument. |
| BackColor |
Získá nebo nastaví barvu pozadí dokumentu HTML. |
| Body |
HtmlElement Získá značku |
| Cookie |
Získá nebo nastaví soubory cookie HTTP přidružené k tomuto dokumentu. |
| DefaultEncoding |
Získá kódování používané ve výchozím nastavení pro aktuální dokument. |
| Domain |
Získá nebo nastaví řetězec popisující doménu tohoto dokumentu pro účely zabezpečení. |
| DomDocument |
Získá nespravovaný ukazatel rozhraní pro tento HtmlDocument. |
| Encoding |
Získá nebo nastaví kódování znaků pro tento dokument. |
| Focused |
Získá hodnotu určující, zda dokument má fokus vstupu uživatele. |
| ForeColor |
Získá nebo nastaví barvu textu dokumentu. |
| Forms |
Získá kolekci všech |
| Images |
Získá kolekci všech značek obrázků v dokumentu. |
| LinkColor |
Získá nebo nastaví barvu hypertextových odkazů. |
| Links |
Získá seznam všech hypertextových odkazů v tomto dokumentu HTML. |
| RightToLeft |
Získá nebo nastaví směr textu v aktuálním dokumentu. |
| Title |
Získá nebo nastaví textová hodnota značky |
| Url |
Získá adresu URL popisující umístění tohoto dokumentu. |
| VisitedLinkColor |
Získá nebo nastaví barvu odkazů na stránky HTML, které uživatel již navštívil. |
| Window |
Získá přidružené k HtmlWindow tomuto dokumentu. |
Metody
| Name | Description |
|---|---|
| AttachEventHandler(String, EventHandler) |
Přidá obslužnou rutinu události pro pojmenovanou událost HTML DOM. |
| CreateElement(String) |
Vytvoří nový |
| DetachEventHandler(String, EventHandler) |
Odebere obslužnou rutinu události z pojmenované události v HTML DOM. |
| Equals(Object) |
Otestuje objekt pro rovnost proti aktuálnímu objektu. |
| ExecCommand(String, Boolean, Object) |
Spustí zadaný příkaz pro dokument. |
| Focus() |
Nastaví fokus vstupu uživatele na aktuální dokument. |
| GetElementById(String) |
Načte jeden HtmlElement atribut elementu |
| GetElementFromPoint(Point) |
Načte element HTML umístěný v zadaných souřadnicích klienta. |
| GetElementsByTagName(String) |
Načtěte kolekci prvků se zadanou značkou HTML. |
| GetHashCode() |
Načte kód hash pro tento objekt. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InvokeScript(String, Object[]) |
Spustí aktivní skriptovací funkci definovanou na stránce HTML. |
| InvokeScript(String) |
Spustí aktivní skriptovací funkci definovanou na stránce HTML. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OpenNew(Boolean) |
Získá nové HtmlDocument použití s metodou Write(String) . |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| Write(String) |
Zapíše novou stránku HTML. |
Operátory
| Name | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Vrátí hodnotu, která určuje, zda zadané HtmlDocument instance představují stejnou hodnotu. |
| Inequality(HtmlDocument, HtmlDocument) |
Vrátí hodnotu, která určuje, zda zadané HtmlDocument instance nepředstavují stejnou hodnotu. |
Událost
| Name | Description |
|---|---|
| Click |
Nastane, když uživatel klikne kdekoli v dokumentu. |
| ContextMenuShowing |
Nastane, když uživatel požádá o zobrazení místní nabídky dokumentu. |
| Focusing |
Nastane před tím, než se fokus předá dokumentu. |
| LosingFocus |
Nastane, když fokus opouští ovládací prvek. |
| MouseDown |
Nastane, když uživatel klikne na levé tlačítko myši. |
| MouseLeave |
Nastane, když myš už najede myší na dokument. |
| MouseMove |
Nastane, když je myš přesunuta přes dokument. |
| MouseOver |
Nastane, když je myš přesunuta přes dokument. |
| MouseUp |
Nastane, když uživatel uvolní levé tlačítko myši. |
| Stop |
Nastane při zastavení navigace na jinou webovou stránku. |