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 屬性或 Submit 上的 FORM 方法。 GetAttributeSetAttribute 方法可讓您擷取和改變特定專案上的任何屬性或屬性,同時 InvokeMember 可讓您存取 Managed Document Object Model (DOM) 中未公開的任何方法。 如果您的應用程式具有 Unmanaged 程式碼許可權,您也可以使用 DomElement 屬性來存取未公開的屬性和方法。

TagName使用 屬性來測試專案是否屬於特定類型。

任何 HTML 檔案都可以在執行時間修改。 您可以使用 的 方法建立新的 HtmlElement 物件 CreateElement ,並使用 或 InsertAdjacentElement 方法將它們新增至另一個專案 AppendChildHtmlDocument 您也可以將元素建立為 HTML 標籤,並將其指派給現有元素的 InnerHtml 屬性。

屬性

All

取得目前項目下之所有項目的 HtmlElementCollection

CanHaveChildren

取得值,指出此項目是否可以有子項目。

Children

取得目前項目之所有子系的 HtmlElementCollection

ClientRectangle

取得 HTML 文件中項目的工作區 (Client Area) 之界限。

Document

取得這個項目所屬的 HtmlDocument

DomElement

為此項目取得 Unmanaged 介面指標。

Enabled

取得或設定使用者是否可以將資料輸入此項目中。

FirstChild

取得文件樹狀目錄中這個項目底下的下一個項目。

Id

取得或設定用來識別項目的標籤。

InnerHtml

取得或設定此項目之下的 HTML 標記。

InnerText

取得或設定指派給此項目的文字。

Name

取得或設定項目的名稱。

NextSibling

取得文件樹狀目錄中與這個項目相同層級的下一個項目。

OffsetParent

取得會從其中計算 OffsetRectangle 的項目。

OffsetRectangle

取得某項目相對於其父代的位置。

OuterHtml

取得或設定目前項目的 HTML 程式碼。

OuterText

取得或設定目前項目的文字。

Parent

取得目前項目的父項目。

ScrollLeft

取得或設定在項目的邊緣和其內容的左邊緣之間的距離。

ScrollRectangle

取得某項目的可捲動區域的維度。

ScrollTop

取得或設定在項目的邊緣和其內容的上邊緣之間的距離。

Style

為目前元素取得或設定以分號分隔的樣式清單。

TabIndex

取得或設定此項目在定位順序中的位置。

TagName

取得 HTML 標記的名稱。

方法

AppendChild(HtmlElement)

為另一個項目的樹狀子目錄加入項目。

AttachEventHandler(String, EventHandler)

將具名事件的事件處理常式加入 HTML 文件物件模型 (DOM)。

DetachEventHandler(String, EventHandler)

從 HTML 文件物件模型 (DOM) 上的具名事件移除事件處理常式。

Equals(Object)

測試提供的物件是否等於目前的項目。

Focus()

將使用者輸入焦點放在目前的項目。

GetAttribute(String)

擷取此項目上具名屬性的值。

GetElementsByTagName(String)

擷取 HTML 中由指定 HTML 標記所表示的項目集合。

GetHashCode()

以特定類型的雜湊函式進行服務。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
InsertAdjacentElement(HtmlElementInsertionOrientation, HtmlElement)

將新的項目插入文件物件模型 (DOM)。

InvokeMember(String)

在此項目的基礎 DOM 項目上執行未公開的方法。

InvokeMember(String, Object[])

執行目前 HTML 網頁中使用指令碼語言定義的函式。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
RaiseEvent(String)

讓具名事件呼叫所有已註冊的事件處理常式。

RemoveFocus()

如果目前的項目有焦點,則移除它的焦點。

ScrollIntoView(Boolean)

在包含這個項目的文件中捲動,直到這個項目的上邊緣或下邊緣與文件視窗對齊為止。

SetAttribute(String, String)

設定此項目上具名屬性的值。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

運算子

Equality(HtmlElement, HtmlElement)

比較兩個項目是否相等。

Inequality(HtmlElement, HtmlElement)

比較兩個 HtmlElement 物件是否不相等。

事件

Click

發生於使用者使用滑鼠左鍵按一下此項目時。

DoubleClick

發生於使用者快速而連續地使用滑鼠左鍵按下某項目兩次時。

Drag

發生於使用者拖曳文字到各種位置時。

DragEnd

發生於使用者完成拖曳作業時。

DragLeave

當使用者不再拖曳項目到這個項目上時發生。

DragOver

發生於使用者拖曳文字到某項目上時。

Focusing

發生於此項目第一次收到使用者輸入焦點時。

GotFocus

發生於此項目已經收到使用者輸入焦點時。

KeyDown

發生於使用者按下鍵盤上的按鍵時。

KeyPress

發生於使用者按下鍵盤上的按鍵然後鬆開時。

KeyUp

發生於使用者鬆開鍵盤上的按鍵時。

LosingFocus

當這個項目正失去使用者輸入焦點時發生。

LostFocus

當這個項目已失去使用者輸入焦點時發生。

MouseDown

發生於使用者按下滑鼠按鈕時。

MouseEnter

當使用者第一次將滑鼠指標移到目前項目上方時發生。

MouseLeave

發生於使用者將滑鼠指標移開目前項目時。

MouseMove

發生於使用者將滑鼠指標移過項目時。

MouseOver

發生於滑鼠指標進入項目的範圍時。

MouseUp

發生於使用者鬆開滑鼠按鈕時。

適用於

另請參閱