HtmlDocument 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供由控制項託管的 WebBrowser HTML 文件的頂層程式存取。
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- 繼承
-
HtmlDocument
範例
以下程式碼範例使用 Northwind 資料庫的資料,動態地建立HTML TABLE一個 。CreateElement 此 AppendChild 方法也被使用,先將儲存格(TD 元素)加入列(TR 元素),再將資料列加入表格,最後將表格附加到目前文件末尾。 程式碼範例要求你的應用程式有一個 WebBrowser 名為 WebBrowser1的控制項。 程式碼應該在文件載入後才呼叫。
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
備註
HtmlDocument 提供一個受管理包裝,包裹 Internet Explorer 的文件物件,也稱為 HTML 文件物件模型(DOM)。 你透過控制的屬性WebBrowser獲得一個HtmlDocumentDocument實例。
HTML 文件中的 HTML 標籤可以相互巢狀。 HtmlDocument 因此代表一個文件樹,其子節點是該 HtmlElement 類別的實例。 以下程式碼範例展示了一個簡單的 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>
在此範例中,代表 HtmlDocument 整個文件在標籤 HTML 內。
BODY這些 、 DIV和 FORMSPAN 標籤以個別HtmlElement物件表示。
你可以透過多種方式進入這棵樹中的元素。 使用該 Body 資產來存取 BODY 標籤及其所有子節點。 這個 ActiveElement 屬性會給你 HtmlElement 在 HTML 頁面上有使用者輸入焦點的元素。 HTML 頁面中的所有元素都可以有名稱;該All收藏以名稱作為索引,提供存取。HtmlElement
GetElementsByTagName 會回傳 HtmlElementCollection 所有 HtmlElement 具有特定 HTML 標籤名稱的物件,例如 DIV 或 TABLE。
GetElementById 會回傳對應你所提供的唯一 ID 的單一 HtmlElement 。
GetElementFromPoint 會回傳 HtmlElement 螢幕上提供的滑鼠指標座標。
你也可以使用 和 FormsImages collection 來遍歷代表使用者輸入表單和圖形的元素。
HtmlDocument基於 Internet Explorer 的 DHTML DOM 所實作的非管理介面:IHTMLDocument、 IHTMLDocument2IHTMLDocument3IHTMLDocument4和 。 只有在這些未管理介面上最常用的屬性與方法會被 HtmlDocument揭露。 你可以直接用這個 DomDocument 屬性存取所有其他屬性和方法,然後再把它cast成想要的非管理介面指標。
HTML 文件可能包含框架,框架是控制項內 WebBrowser 的不同視窗。 每個框架顯示自己的 HTML 頁面。 該 Frames 收藏可透過物業 Window 取得。 您也可以使用此 Window 屬性來調整顯示頁面大小、捲動文件,或向使用者顯示警示與提示。
HtmlDocument 它會顯示你在 HTML 頁面托管時最常會遇到的事件。 對於介面未直接暴露的事件,你可以使用 AttachEventHandler。
HTML 檔案可能包含 SCRIPT 封裝以 Active Scripting 語言撰寫的代碼的標籤,例如 JScript 或 VBScript。 此 InvokeScript 方法提供執行標籤中定義的 SCRIPT 屬性與方法。
備註
雖然大多數屬性、方法和事件在 上 HtmlDocument 保留了與非管理 DOM 相同的名稱,但為了與 .NET Framework 保持一致,有些已做了更改。
屬性
| 名稱 | Description |
|---|---|
| ActiveElement |
提供目前使用者輸入焦點的資訊 HtmlElement 。 |
| ActiveLinkColor |
當使用者點擊時,會取得或設定 Color 超連結。 |
| All |
會得到一個實例,該實例 HtmlElementCollection儲存文件中的所有 HtmlElement 物件。 |
| BackColor |
取得或設定 HTML 文件的背景顏色。 |
| Body |
拿HtmlElement到標籤。 |
| Cookie |
取得或設定與本文件相關的 HTTP Cookie。 |
| DefaultEncoding |
會取得目前文件預設使用的編碼方式。 |
| Domain |
為了安全考量,取得或設定描述本文件域的字串。 |
| DomDocument |
會取得非 HtmlDocument管理介面指標。 |
| Encoding |
取得或設定此文件的字元編碼。 |
| Focused |
會獲得一個值,表示文件是否有使用者輸入焦點。 |
| ForeColor |
取得或設定文件的文字顏色。 |
| Forms |
取得文件中所有 |
| Images |
會取得文件中所有圖片標籤的集合。 |
| LinkColor |
取得或設定超連結的顏色。 |
| Links |
會列出此 HTML 文件中所有超連結。 |
| RightToLeft |
取得或設定目前文件中文字的方向。 |
| Title |
取得或設定目前 HTML 文件中標籤的 |
| Url |
取得描述此文件位置的網址。 |
| VisitedLinkColor |
取得或設定使用者已瀏覽過的 HTML 頁面連結的顏色。 |
| Window |
與 HtmlWindow 此文件相關。 |
方法
| 名稱 | Description |
|---|---|
| AttachEventHandler(String, EventHandler) |
新增一個用於命名 HTML DOM 事件的事件處理程序。 |
| CreateElement(String) |
建立指定的 HTML 標籤類型新檔案 |
| DetachEventHandler(String, EventHandler) |
移除 HTML DOM 中命名事件中的事件處理器。 |
| Equals(Object) |
測試物件與當前物件的相等性。 |
| ExecCommand(String, Boolean, Object) |
對文件執行指定的指令。 |
| Focus() |
將使用者輸入聚焦於當前文件。 |
| GetElementById(String) |
利用元素屬性 |
| GetElementFromPoint(Point) |
取得位於指定用戶端座標的 HTML 元素。 |
| GetElementsByTagName(String) |
取得一組帶有指定 HTML 標籤的元素。 |
| GetHashCode() |
取得此物件的雜湊碼。 |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| InvokeScript(String, Object[]) |
執行定義於 HTML 頁面中的主動腳本函式。 |
| InvokeScript(String) |
執行定義於 HTML 頁面中的主動腳本函式。 |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| OpenNew(Boolean) |
會用新的 HtmlDocument 方法來搭配 Write(String) 。 |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |
| Write(String) |
寫一個新的 HTML 頁面。 |
操作員
| 名稱 | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
回傳一個值,表示指定的 HtmlDocument 實例是否代表相同值。 |
| Inequality(HtmlDocument, HtmlDocument) |
回傳一個值,表示指定的 HtmlDocument 實例是否代表相同的值。 |
事件
| 名稱 | Description |
|---|---|
| Click |
當使用者在文件上任意點擊時,會發生這種情況。 |
| ContextMenuShowing |
當使用者請求顯示文件的右鍵選單時,會發生這種情況。 |
| Focusing |
發生在文件被聚焦之前。 |
| LosingFocus |
當專注離開控制時會發生。 |
| MouseDown |
當使用者點擊滑鼠左鍵時會發生。 |
| MouseLeave |
當滑鼠不再懸停在文件上時會發生。 |
| MouseMove |
當滑鼠移動到文件上時會發生。 |
| MouseOver |
當滑鼠移動到文件上時會發生。 |
| MouseUp |
當使用者放開滑鼠左鍵時會發生。 |
| Stop |
當導覽到另一個網頁時會發生。 |