设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4160|回复: 4
打印 上一主题 下一主题

[与其它组件] WebBrowser多次跳转页面的问题

[复制链接]
跳转到指定楼层
1#
发表于 2014-11-13 14:49:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 这是我的小号 于 2014-11-13 14:54 编辑

估计是页面载入时需要一些时间,或者跟IE缓存有一定关系。每次跳转到下一个页面时,如果不加入Msgbox则永远都无法显示正确的值,但每次都弹出这个警告栏极不方便,大家看看有没有更好的解决办法?
顺便问一句,可以点名吗?^_^ 想点下todaynew来看看。
  1. Option Compare Database
  2. Option Explicit
  3. '这一句是延时执行,但是没用
  4. Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)

  5. Private Sub Command1_Click()

  6. Dim rst As New ADODB.Recordset
  7. Dim i As Long
  8. Dim k As String
  9. Dim s As Double
  10. rst.Open "tblID", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  11. For i = 1 To rst.RecordCount
  12.    
  13.     s = GetData(rst(1))
  14.     rst(2) = s
  15.     rst.update
  16.     MsgBox s '如果加上这句写入的值就是正确的,如果不加入,写入的值永远都是第一个。
  17.     rst.MoveNext
  18.     'Sleep 1000
  19. Next i
  20. rst.Close

  21. End Sub

  22. Private Sub Form_Load()
  23. Dim wb As WebBrowser
  24. Set wb = Me.WebBrowser0.Object
  25.     wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=40336681573#J_Reviews"

  26. t = Timer
  27. End Sub

  28. Function GetData(strID As String)
  29. Dim wb As WebBrowser
  30. Dim doc As HTMLDocument
  31. Dim a_tags As IHTMLElementCollection
  32. Dim a_tag As IHTMLElement
  33. Dim str As String
  34. Set wb = Me.WebBrowser0.Object

  35.     wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=" & strID & "#J_Reviews"
  36.     Set doc = wb.Document
  37.     Set a_tags = doc.all.tags("div")
  38.         For Each a_tag In a_tags
  39.             If a_tag.className = "rate-score" Then
  40.                 str = Mid(a_tag.innerText, InStr(1, a_tag.innerText, "符") + 1)
  41.             End If
  42.         Next
  43. GetData = str

  44. End Function
复制代码


上次的帖子如下:
http://www.office-cn.net/thread-118973-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2014-11-13 15:59:29 | 只看该作者
  1. Function GetData(strID As String)
  2. Dim wb As WebBrowser
  3. Dim doc As HTMLDocument
  4. Dim a_tags As IHTMLElementCollection
  5. Dim a_tag As IHTMLElement
  6. Dim str As String
  7. Set wb = Me.WebBrowser0.Object
  8. '加上这几句试试?
  9. '***************
  10.     Do Until wb.ReadyState = READYSTATE_COMPLETE
  11.         DoEvents
  12.     Loop
  13. '*******************
  14.     wb.Navigate "http://detail.tmall.com/item.htm?_u=n1sscq85e5e0&id=" & strID & "#J_Reviews"

  15.     Set doc = wb.Document
  16.     Set a_tags = doc.all.tags("div")
  17.         For Each a_tag In a_tags
  18.             If a_tag.className = "rate-score" Then
  19.                 str = Mid(a_tag.innerText, InStr(1, a_tag.innerText, "符") + 1)
  20.             End If
  21.         Next
  22. GetData = str

  23. End Function
复制代码
3#
发表于 2014-11-13 16:53:16 | 只看该作者
4#
发表于 2014-11-14 10:46:41 | 只看该作者

你那个处理方法有效,的确解决jquery数据加载慢的问题
5#
发表于 2014-11-14 11:48:15 | 只看该作者
leonshi 发表于 2014-11-14 10:46
你那个处理方法有效,的确解决jquery数据加载慢的问题

由于网页是服务端的,jQuery不好处理吧?个人觉得,用IFrame加载也不方便。这些代码都属于DOM里面的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-17 22:36 , Processed in 0.093637 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表