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
整個檔。
BODY
、 DIV
FORM
和 SPAN
標記是由個別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 |
HtmlElement取得標籤的 |
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, Object[]) |
執行定義在 HTML 網頁中的 Active Scripting 函式。 |
InvokeScript(String) |
執行定義在 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 網頁的巡覽暫止時。 |