Office中国论坛/Access中国论坛
标题:
WebBrowser多次跳转页面的问题
[打印本页]
作者:
这是我的小号
时间:
2014-11-13 14:49
标题:
WebBrowser多次跳转页面的问题
本帖最后由 这是我的小号 于 2014-11-13 14:54 编辑
估计是页面载入时需要一些时间,或者跟IE缓存有一定关系。每次跳转到下一个页面时,如果不加入Msgbox则永远都无法显示正确的值,但每次都弹出这个警告栏极不方便,大家看看有没有更好的解决办法?
顺便问一句,可以点名吗?^_^ 想点下todaynew来看看。
Option Compare Database
Option Explicit
'这一句是延时执行,但是没用
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim rst As New ADODB.Recordset
Dim i As Long
Dim k As String
Dim s As Double
rst.Open "tblID", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 1 To rst.RecordCount
s = GetData(rst(1))
rst(2) = s
rst.update
MsgBox s '如果加上这句写入的值就是正确的,如果不加入,写入的值永远都是第一个。
rst.MoveNext
'Sleep 1000
Next i
rst.Close
End Sub
Private Sub Form_Load()
Dim wb As WebBrowser
Set wb = Me.WebBrowser0.Object
wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=40336681573#J_Reviews"
t = Timer
End Sub
Function GetData(strID As String)
Dim wb As WebBrowser
Dim doc As HTMLDocument
Dim a_tags As IHTMLElementCollection
Dim a_tag As IHTMLElement
Dim str As String
Set wb = Me.WebBrowser0.Object
wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=" & strID & "#J_Reviews"
Set doc = wb.Document
Set a_tags = doc.all.tags("div")
For Each a_tag In a_tags
If a_tag.className = "rate-score" Then
str = Mid(a_tag.innerText, InStr(1, a_tag.innerText, "符") + 1)
End If
Next
GetData = str
End Function
复制代码
[attach]55011[/attach]
上次的帖子如下:
http://www.office-cn.net/thread-118973-1-1.html
作者:
roych
时间:
2014-11-13 15:59
Function GetData(strID As String)
Dim wb As WebBrowser
Dim doc As HTMLDocument
Dim a_tags As IHTMLElementCollection
Dim a_tag As IHTMLElement
Dim str As String
Set wb = Me.WebBrowser0.Object
'加上这几句试试?
'***************
Do Until wb.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
'*******************
wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=" & strID & "#J_Reviews"
Set doc = wb.Document
Set a_tags = doc.all.tags("div")
For Each a_tag In a_tags
If a_tag.className = "rate-score" Then
str = Mid(a_tag.innerText, InStr(1, a_tag.innerText, "符") + 1)
End If
Next
GetData = str
End Function
复制代码
作者:
leonshi
时间:
2014-11-13 16:53
roych 发表于 2014-11-13 15:59
谢谢
作者:
leonshi
时间:
2014-11-14 10:46
roych 发表于 2014-11-13 15:59
你那个处理方法有效,的确解决jquery数据加载慢的问题
作者:
roych
时间:
2014-11-14 11:48
leonshi 发表于 2014-11-14 10:46
你那个处理方法有效,的确解决jquery数据加载慢的问题
由于网页是服务端的,jQuery不好处理吧?个人觉得,用IFrame加载也不方便。这些代码都属于DOM里面的。。。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3