HtmlDocument 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供最上層的程式存取方式,以存取 WebBrowser 控制項所裝載的 HTML 文件。
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- 繼承
-
HtmlDocument
範例
下列程式碼範例會使用 Northwind 資料庫中的資料,以動態方式使用 CreateElement 來建立 HTML TABLE
。 此外 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 檔物件周圍的 Managed 包裝函式,也稱為 HTML 檔案物件模型 (DOM) 。 您可以透過 Document 控制項的 屬性取得 的 WebBrowser 實例 HtmlDocument 。
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
整個檔。 、 DIV
FORM
和 SPAN
標記 BODY
是由個別 HtmlElement 物件表示。
有幾種方式可以存取此樹狀結構中的元素。 Body使用 屬性來存取 BODY
標籤及其所有子系。 屬性 ActiveElement 會 HtmlElement 為具有使用者輸入焦點之 HTML 頁面上的 元素提供 。 HTML 頁面內的所有元素都可以有名稱;集合 All 會使用其名稱做為索引來存取每個 HtmlElement 集合。 GetElementsByTagName 會傳回 HtmlElementCollection 具有指定 HTML 標籤名稱的所有 HtmlElement 物件的 ,例如 DIV
或 TABLE
。 GetElementById 會傳回對應至您提供的唯一識別碼的單一 HtmlElement 。 GetElementFromPoint 會傳回 HtmlElement 可在提供滑鼠指標座標的畫面上找到的 。
您也可以使用 Forms 和 Images 集合逐一查看分別代表使用者輸入表單和圖形的專案。
HtmlDocument 是以 Internet Explorer 的 DHTML DOM 所實作的 Unmanaged 介面為基礎: IHTMLDocument
、 IHTMLDocument2
、 IHTMLDocument3
和 IHTMLDocument4
。 只有這些 Unmanaged 介面上最常使用的屬性和方法會由 HtmlDocument 公開。 您可以使用 屬性直接 DomDocument 存取所有其他屬性和方法,您可以轉換成所需的 Unmanaged 介面指標。
HTML 檔案可能包含框架,這些框架是控制項內部 WebBrowser 的不同視窗。 每個框架都會顯示自己的 HTML 頁面。 集合 Frames 可透過 屬性取得 Window 。 您也可以使用 Window 屬性來調整顯示的頁面大小、捲動檔,或向使用者顯示警示和提示。
HtmlDocument 會公開裝載 HTML 網頁時,您預期要處理的最常見事件。 對於介面未直接公開的事件,您可以使用 新增 事件的 AttachEventHandler 處理常式。
HTML 檔案可能包含 SCRIPT
標記,封裝其中一種使用中指令碼語言撰寫的程式碼,例如 JScript 或 VBScript。 方法 InvokeScript 提供執行標記中 SCRIPT
定義的屬性和方法。
注意
雖然 上的 HtmlDocument 大部分屬性、方法和事件都保留與 Unmanaged DOM 上相同的名稱,但有些屬性已變更,以便與.NET Framework一致。
屬性
ActiveElement |
提供目前具有使用者輸入焦點的 HtmlElement。 |
ActiveLinkColor |
取得或設定使用者按一下時的超連結 Color。 |
All |
取得 HtmlElementCollection 的執行個體,它會儲存文件的所有 HtmlElement 物件。 |
BackColor |
取得或設定 HTML 文件的背景色彩。 |
Body |
取得 |
Cookie |
取得或設定與這份文件相關的 HTTP Cookie。 |
DefaultEncoding |
取得預設用於目前文件編碼。 |
Domain |
取得或設定字串,此字串描述此文件的網域 (基於安全性目的)。 |
DomDocument |
取得此 HtmlDocument 的 Unmanaged 介面指標。 |
Encoding |
取得或設定此文件的字元編碼方式。 |
Focused |
取得值,指出文件是否具有使用者輸入焦點。 |
ForeColor |
取得或設定文件的文字色彩。 |
Forms |
取得檔中所有 |
Images |
取得文件中所有影像標記的集合。 |
LinkColor |
取得或設定超連結的色彩。 |
Links |
取得此 HTML 文件中所有超連結的清單。 |
RightToLeft |
取得或設定目前文件中的文字方向。 |
Title |
取得或設定目前 HTML 檔案中 |
Url |
取得描述此文件位置的 URL。 |
VisitedLinkColor |
取得或設定使用者已經瀏覽過之 HTML 網頁連結的色彩。 |
Window |
取得與此文件相關聯的 HtmlWindow。 |
方法
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) |
執行定義在 HTML 網頁中的 Active Scripting 函式。 |
InvokeScript(String, Object[]) |
執行定義在 HTML 網頁中的 Active Scripting 函式。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
OpenNew(Boolean) |
取得要與 Write(String) 方法搭配使用的新 HtmlDocument。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
Write(String) |
撰寫新的 HTML 網頁。 |
運算子
Equality(HtmlDocument, HtmlDocument) |
傳回值,指出所指定的 HtmlDocument 執行個體是否表示相同的值。 |
Inequality(HtmlDocument, HtmlDocument) |
傳回值,指出所指定的 HtmlDocument 執行個體不是表示相同的值。 |
事件
Click |
發生於使用者按一下文件上的任何地方時。 |
ContextMenuShowing |
發生於使用者要求顯示文件的操作功能表時。 |
Focusing |
發生於為文件提供焦點之前。 |
LosingFocus |
發生於焦點離開控制項時。 |
MouseDown |
發生於使用者按一下滑鼠左鍵時。 |
MouseLeave |
發生於滑鼠不再停留在文件上方時。 |
MouseMove |
發生於滑鼠移至文件上方時。 |
MouseOver |
發生於滑鼠移至文件上方時。 |
MouseUp |
發生於使用者放開滑鼠左鍵時。 |
Stop |
發生於另一個 Web 網頁的巡覽暫止時。 |