共用方式為


HtmlElement 類別

定義

表示網頁內的 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 文件中任何可能的元素類型,例如 BODYTABLEFORM和 等。 這個類別揭示了你在所有元素上最常見的特性。

大多數元素都可以有 子元素:即放置在它們下方的其他 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)

擷取一組以指定 HTML 標籤表示的元素。

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

當使用者放開滑鼠按鈕時會發生。

適用於

另請參閱