HtmlElement 类

定义

表示网页内的一个 HTML 元素。

public ref class HtmlElement sealed
public sealed class HtmlElement
type HtmlElement = class
Public NotInheritable Class HtmlElement
继承
HtmlElement

示例

下面的代码示例演示如何检查任意 HTML 文档并派生描述 HTML 元素的字符串,以及用于指示元素深度嵌套在文档中的缩进和级别编号。 This code example requires that your application hosts a WebBrowser control named 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元素上的属性或Submit元素上的IMG``FORM方法。 通过 GetAttributeSetAttribute 方法,可以检索和更改特定元素上的任何属性或属性,同时 InvokeMember 提供对托管文档对象模型中未公开的任何方法的访问权限, (DOM) 。 如果应用程序具有非托管代码权限,还可以使用 DomElement 属性访问未公开的属性和方法。

使用 TagName 属性测试元素是否属于特定类型。

可以在运行时修改任何 HTML 文档。 可以使用方法创建新对象,并使用或InsertAdjacentElement方法将其添加到另一个元素AppendChildCreateElement HtmlElement HtmlDocument 还可以将元素创建为 HTML 标记,并将其分配给现有元素的属性 InnerHtml

属性

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

获取或设置 Tab 键顺序中此元素的位置。

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

当用户释放鼠标按钮时发生。

适用于

另请参阅