首先循环选择标签,然后是所有标签

时间:2014-05-03 06:52:05

标签: javascript html vb6 webbrowser-control

在VB6中,我想遍历Web浏览器控件中的所有html标记。由于html内容很大,它变得很慢。以下是我的要求。

我想得到一个" A" (锚)标记具有在该文档中唯一的特定名称。(示例)。得到之后 那个标签我想循环遍历所有的html标签,直到我得到另一个" A"用另一个特定名称标记。 (例如

所以我使用下面的代码。代码是通过检查属性名称中的某些字符来完成的,因为它以相同的方式工作。代码不符合我的要求,我解释为我做了另一种方式。

Dim bkm As Boolean
Dim hw2 As HTMLWindow2
 For Each ele In hw2.Document.All

        If ele.getAttribute("name") = mybkm Then 'mybkm  variable having name of tag
            bkm = True

            ele.Style.cssText = "background-color:#FFFFEB;" & ele.Style.cssText

        ElseIf bkm = True And InStr(ele.outerHTML, "name=BKM") = 0) Then
            ele.Style.cssText = "background-color:#FFFFEB;" & ele.Style.cssText
        ElseIf InStr(ele.getAttribute("name"), "BKM") > 0 Then
            If bkm = True Then
                bkm = False
                Exit For
            End If
        End If
    Next

但是在我的这个第一次出现的带有该名称的A标签变得非常慢(整个过程需要大约90%的时间),因为大号没有。标签如P,br,A,表等等

所以我打算先获得#34; A"具有特定名称的标签(可能只是通过循环#34; A"标签)然后循环所有标签直到我接下来" A"标签

那怎么办呢?

1 个答案:

答案 0 :(得分:1)

Try like this - 

Dim i As Integer
Dim anchorElement As HTMLAnchorElement = wbMain.Document.All.getElementByTagName("A")(0)

For i = 0 To anchorElement.attributes.length - 1
  MsgBox anchorElement.attributes.item(i).name & "=" & anchorElement.attributes.item(i).value
Next i