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
屬性或 Submit
上的 FORM
方法。 GetAttribute和 SetAttribute 方法可讓您擷取和改變特定專案上的任何屬性或屬性,同時 InvokeMember 可讓您存取 Managed Document Object Model (DOM) 中未公開的任何方法。 如果您的應用程式具有 Unmanaged 程式碼許可權,您也可以使用 DomElement 屬性來存取未公開的屬性和方法。
TagName使用 屬性來測試專案是否屬於特定類型。
任何 HTML 檔案都可以在執行時間修改。 您可以使用 的 方法建立新的 HtmlElement 物件 CreateElement ,並使用 或 InsertAdjacentElement 方法將它們新增至另一個專案 AppendChild 。 HtmlDocument 您也可以將元素建立為 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 中由指定 |
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 |
發生於使用者鬆開滑鼠按鈕時。 |