首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

待,循环,随即,WebBrowser有关问题

2012-01-19 
在线等待,循环,随即,WebBrowser问题先看代码吧,挺郁闷的

在线等待,循环,随即,WebBrowser问题
先看代码吧,挺郁闷的
===========================================================================================
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.baidu.com/s?wd=%C6%FB%B3%B5"
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim arr()
Dim a As Object
Dim i, x As Integer
  For Each a In WebBrowser1.Document.All
  If a.tagname = "A" Then
  If Left(a.Id, 3) = "dfs" Then
  ReDim Preserve arr(i)
  arr(i) = a.Id
  i = i + 1
  x = Int(Rnd() * (UBound(Split(Join(arr), "dfs")) - 1 - 0 + 1)) + 0
  If a.Id = arr(x) Then MsgBox "dfs" & x & " " & a.href
  End If
  End If
  Next
End Sub
========================================================================================
该网站源码格式为:
<a id=dfs0 href="http://www.xxxx...
<a id=dfs1 href="http://www.xxxx...
<a id=dfs2 href="http://www.xxxx...
<a id=dfs3 href="http://www.xxxx...
<a id=dfs4 href="http://www.xxxx...
<a id=dfs5 href="http://www.xxxx...
<a id=dfs6 href="http://www.xxxx...
<a id=dfs7 href="http://www.xxxx...
  ...
id开头始终为dfs0,根据搜索的关键字最多可以为dfs7

上面的代码获取了打开的网页中有多少个dfs然后取出随即的一个,可是为什么msgbox的时候会是好几个啊,而且弹出的第一个始终是dfs0的啊,是不是代码有问题啊,高手帮忙修改一下啊。。

要达到的效果应该是随即取出来一个的啊。


[解决办法]
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim arr()
Dim a As Object
Dim i, x As Integer
For Each a In WebBrowser1.Document.All
If a.tagname = "A" Then
If Left(a.Id, 3) = "dfs" Then
ReDim Preserve arr(i)
arr(i) = a.Id
i = i + 1
x = Int(Rnd() * (UBound(Split(Join(arr), "dfs")) - 1 - 0 + 1)) + 0
End If
End If
Next
For Each a In WebBrowser1.Document.All
If a.tagname = "A" Then
If a.Id = arr(x) Then MsgBox "dfs" & x & " " & a.href
End If
Next
End Sub

第一个循环,取ID,和随即值
第二个循环,MSGBOX
结贴给分,顺便鄙视下

热点排行