HtmlElement 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示網頁內的 HTML 元素。
public ref class HtmlElement sealed
public sealed class HtmlElement
type HtmlElement = class
Public NotInheritable Class HtmlElement
- 繼承
-
HtmlElement
範例
以下程式碼範例展示了如何檢視任意 HTML 文件,並推導出描述 HTML 元素的字串,並使用縮排與層級編號表示元素在文件中巢狀的深度。 此程式碼範例要求您的應用程式承載一個 WebBrowser 名為 WebBrowser1的控制項。
private void PrintDomBegin()
{
if (webBrowser1.Document != null)
{
HtmlElementCollection elemColl = null;
HtmlDocument doc = webBrowser1.Document;
if (doc != null)
{
elemColl = doc.GetElementsByTagName("HTML");
String str = PrintDom(elemColl, new System.Text.StringBuilder(), 0);
webBrowser1.DocumentText = str;
}
}
}
private string PrintDom(HtmlElementCollection elemColl, System.Text.StringBuilder returnStr, Int32 depth)
{
System.Text.StringBuilder str = new System.Text.StringBuilder();
foreach (HtmlElement elem in elemColl)
{
string elemName;
elemName = elem.GetAttribute("ID");
if (elemName == null || elemName.Length == 0)
{
elemName = elem.GetAttribute("name");
if (elemName == null || elemName.Length == 0)
{
elemName = "<no name>";
}
}
str.Append(' ', depth * 4);
str.Append(elemName + ": " + elem.TagName + "(Level " + depth + ")");
returnStr.AppendLine(str.ToString());
if (elem.CanHaveChildren)
{
PrintDom(elem.Children, returnStr, depth + 1);
}
str.Remove(0, str.Length);
}
return (returnStr.ToString());
}
Private Sub PrintDomBegin()
If (WebBrowser1.Document IsNot Nothing) Then
Dim ElemColl As HtmlElementCollection
Dim Doc As HtmlDocument = WebBrowser1.Document
If (Not (Doc Is Nothing)) Then
ElemColl = Doc.GetElementsByTagName("HTML")
Dim Str As String = PrintDom(ElemColl, New System.Text.StringBuilder(), 0)
WebBrowser1.DocumentText = Str
End If
End If
End Sub
Private Function PrintDom(ByVal ElemColl As HtmlElementCollection, ByRef ReturnStr As System.Text.StringBuilder, ByVal Depth As Integer) As String
Dim Str As New System.Text.StringBuilder()
For Each Elem As HtmlElement In ElemColl
Dim ElemName As String
ElemName = Elem.GetAttribute("ID")
If (ElemName Is Nothing Or ElemName.Length = 0) Then
ElemName = Elem.GetAttribute("name")
If (ElemName Is Nothing Or ElemName.Length = 0) Then
ElemName = "<no name>"
End If
End If
Str.Append(CChar(" "), Depth * 4)
Str.Append(ElemName & ": " & Elem.TagName & "(Level " & Depth & ")")
ReturnStr.AppendLine(Str.ToString())
If (Elem.CanHaveChildren) Then
PrintDom(Elem.Children, ReturnStr, Depth + 1)
End If
Str.Remove(0, Str.Length)
Next
PrintDom = ReturnStr.ToString()
End Function
備註
HtmlElement 代表 HTML 文件中任何可能的元素類型,例如 BODY、 TABLE、 FORM和 等。 這個類別揭示了你在所有元素上最常見的特性。
大多數元素都可以有 子元素:即放置在它們下方的其他 HTML 元素。 利用該 CanHaveChildren 屬性測試某個元素是否有子元素,並讓 Children 集合遍歷這些子元素。 屬性Parent回傳當前元素巢狀的 。HtmlElement
你通常需要存取底層元素上未被 HtmlElement直接暴露的屬性、屬性和方法,例如 SRC 元素上的 IMG 屬性或 SubmitFORM的方法。
GetAttribute這些 and SetAttribute 方法讓你能檢索並修改特定元素上的任何屬性或屬性,同時InvokeMember也能存取未被管理文件物件模型(DOM)中暴露的任何方法。 如果你的應用程式擁有非管理程式碼權限,你也可以用該 DomElement 屬性存取未暴露的屬性和方法。
利用該 TagName 屬性來測試元素是否屬於特定類型。
任何 HTML 文件都可以在執行時修改。 你可以用 CreateElement 的方法建立新HtmlElement物件,並用 AppendChild or InsertAdjacentElement 方法將它們HtmlDocument加入另一個元素。 你也可以將元素建立為 HTML 標籤,並指派到現有元素的 InnerHtml 屬性上。
屬性
| 名稱 | Description |
|---|---|
| All |
在當前元素下方取得所有 HtmlElementCollection 元素之一。 |
| CanHaveChildren |
會得到一個值,表示該元素是否可以有子元素。 |
| Children |
獲得 HtmlElementCollection 當前元素的所有子嗣之一。 |
| ClientRectangle |
取得 HTML 文件中元素的用戶端區域邊界。 |
| Document |
明白 HtmlDocument 這個元素所屬的部分。 |
| DomElement |
會為這個元素取得一個非管理介面指標。 |
| Enabled |
取得或設定使用者是否能在此元素中輸入資料。 |
| FirstChild |
會取得文件樹中該元素下方的下一個元素。 |
| Id |
取得或設定一個標籤來識別該元素。 |
| InnerHtml |
可以在這個元素下方取得或設定 HTML 標記。 |
| InnerText |
取得或設定分配給元素的文字。 |
| Name |
取得或設定元素名稱。 |
| NextSibling |
在文件樹中取得與該元素同一層級的下一個元素。 |
| OffsetParent |
取得計算的元素 OffsetRectangle 。 |
| OffsetRectangle |
取得元素相較於父元素的位置。 |
| OuterHtml |
取得或設定當前元素的 HTML 程式碼。 |
| OuterText |
取得或設定當前元素的文字。 |
| Parent |
取得當前元素的父元素。 |
| ScrollLeft |
取得或設定元素邊緣與內容左邊緣之間的距離。 |
| ScrollRectangle |
取得元素可滾動區域的尺寸。 |
| ScrollTop |
取得或設定元素邊緣與內容頂端之間的距離。 |
| Style |
為當前元素取得或設定一個以分號分隔的樣式清單。 |
| TabIndex |
取得或設定此元素在制表序列中的位置。 |
| TagName |
取得 HTML 標籤名稱。 |
方法
| 名稱 | Description |
|---|---|
| AppendChild(HtmlElement) |
將一個元素加入另一個元素的子樹。 |
| AttachEventHandler(String, EventHandler) |
新增一個用於 HTML 文件物件模型(DOM)中命名事件的事件處理器。 |
| DetachEventHandler(String, EventHandler) |
移除 HTML 文件物件模型(DOM)中命名事件的事件處理器。 |
| Equals(Object) |
測試所提供的物件是否等於當前元素。 |
| Focus() |
讓使用者的輸入聚焦在當前元素上。 |
| GetAttribute(String) |
取得該元素上所命名屬性的值。 |
| GetElementsByTagName(String) |
擷取一組以指定 |
| GetHashCode() |
作為特定類型的雜湊函數。 |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| InsertAdjacentElement(HtmlElementInsertionOrientation, HtmlElement) |
在文件物件模型(DOM)中插入一個新元素。 |
| InvokeMember(String, Object[]) |
執行由腳本語言定義於目前 HTML 頁面的函式。 |
| InvokeMember(String) |
對該元素底層 DOM 元素執行未暴露的方法。 |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| RaiseEvent(String) |
會讓命名事件呼叫所有註冊的事件處理器。 |
| RemoveFocus() |
如果當前元素有焦點,則移除該元素的焦點。 |
| ScrollIntoView(Boolean) |
在包含此元素的文件中滾動,直到該元素的上邊或下邊與文件視窗對齊。 |
| SetAttribute(String, String) |
設定該元素所命名屬性的值。 |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |
操作員
| 名稱 | Description |
|---|---|
| Equality(HtmlElement, HtmlElement) |
比較兩個元素以求平等。 |
| Inequality(HtmlElement, HtmlElement) |
比較兩個 HtmlElement 物件是否不相等。 |
事件
| 名稱 | Description |
|---|---|
| Click |
當使用者用滑鼠左鍵點擊元素時,會發生這種情況。 |
| DoubleClick |
當使用者連續快速點擊滑鼠左鍵兩次時,會發生這種情況。 |
| Drag |
當使用者將文字拖曳到不同位置時,會發生這種情況。 |
| DragEnd |
當使用者完成拖曳操作時會發生。 |
| DragLeave |
當使用者不再拖曳物品到該元素時會發生。 |
| DragOver |
當使用者將文字拖曳到元素上時會發生。 |
| Focusing |
當元素首次接收到使用者輸入焦點時,會發生這種情況。 |
| GotFocus |
當元素已接收到使用者輸入焦點時,會發生。 |
| KeyDown |
當使用者按下鍵盤上的按鍵時,會發生這種情況。 |
| KeyPress |
當使用者在鍵盤上按下並放開按鍵時發生。 |
| KeyUp |
當使用者放開鍵盤上的按鍵時,會發生這種情況。 |
| LosingFocus |
當元件失去使用者輸入焦點時會發生。 |
| LostFocus |
當元素失去使用者輸入焦點時,會發生這種情況。 |
| MouseDown |
當使用者按下滑鼠按鈕時會發生。 |
| MouseEnter |
當使用者首次將滑鼠游標移至當前元素時發生。 |
| MouseLeave |
當使用者將滑鼠游標移離當前元素時發生。 |
| MouseMove |
當使用者將滑鼠游標移動到元素上時,會發生這種情況。 |
| MouseOver |
當滑鼠游標進入元素範圍時發生。 |
| MouseUp |
當使用者放開滑鼠按鈕時會發生。 |