使用webbrowser控件如何正确获取返回网页的内容?

hsgzr 2011-04-10 06:04:53
我使用VB webbrowser控件做了个提交表单,表单提交给a.asp,如何成功返回“OK",否则返回"NO",但现在使用
Web1.Document.body.innerText 只能获取到当前网页的内容,不能获取到返回值,即“OK”或“NO"。但在Debug.Print "*" & Web1.Document.body.innerText & "*"处设置断点后,稍等一下就能正确获取,我想是网页的刷新问题,即我获取返回值时有点早,如何控制能正确获取返回网页的文本内容?请大家帮忙,代码如下

Function aa() As Boolean

aa = False

Web1.Document.body.innerHtml = "<form method=post name=tjbb action="a.asp><textarea name='str'>" & Text1 _
& "</textarea>" & "<input type='text' name='bd' value='" & text2 _
& "'></form>"
Do Until Web1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop

Web1.Document.Forms("tjbb").Submit

While Web1.Busy
Application.DoEvents
Wend

Debug.Print "*" & Web1.Document.body.innerText & "*"


If Web1.Document.body.innerText = "OK" Then aa=true

End Function
...全文
842 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hsgzr 的回复:]

引用 7 楼 adddark 的回复:
If pDisp Is WebBrowser1.Object Then
Msgbox "网页加载完成"
Een If
WebBrowser1的DocumentComplete事件下写判断


以上不行,我试过在打开窗体后只执行一次,以后不在进入
[/Quote]不用加If pDisp Is WebBrowser1.Object Then过滤,你先测试下debug.print url看看,以寻找在什么时机去读取网页比较适合。
hsgzr 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 adddark 的回复:]
If pDisp Is WebBrowser1.Object Then
Msgbox "网页加载完成"
Een If
WebBrowser1的DocumentComplete事件下写判断
[/Quote]

以上不行,我试过在打开窗体后只执行一次,以后不在进入
hsgzr 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hsgzr 的回复:]
引用 7 楼 adddark 的回复:
If pDisp Is WebBrowser1.Object Then
Msgbox "网页加载完成"
Een If
WebBrowser1的DocumentComplete事件下写判断

[/Quote]、

以上我没有使用if条件语句,我试过在运行VB窗体后该过程只执行一次,以后不在执行
无·法 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hsgzr 的回复:]

用什么语句判断返回网页加载成功,或用什么语句判断在返回网页未加载成功后,我需要继续等待
[/Quote]其实你在执行了Web1.Document.Forms("tjbb").Submit后可以到web1的documentcoplete事件中去判断,可以结合url地址。
hsgzr 2011-04-11
  • 打赏
  • 举报
回复
用什么语句判断返回网页加载成功,或用什么语句判断在返回网页未加载成功后,我需要继续等待
hsgzr 2011-04-11
  • 打赏
  • 举报
回复
While Web1.Document.body.innerText <> "OK" and Web1.Document.body.innerText <> "NO"
Application.DoEvents
Wend

改成以上也不现实,我只是举例返回的是“OK"或”NO",实际返回的值很多,我就是想知道怎么判断返回值网页加载何时成功,我才能正确读取返回值。

以上实例对于返回“OK"或"NO”两个值的情况下,是很有用
AddDark 2011-04-11
  • 打赏
  • 举报
回复
If pDisp Is WebBrowser1.Object Then
Msgbox "网页加载完成"
Een If
WebBrowser1的DocumentComplete事件下写判断
无·法 2011-04-10
  • 打赏
  • 举报
回复
While Web1.Busy
Application.DoEvents
Wend

改成:

While Web1.Document.body.innerText <> "OK" and Web1.Document.body.innerText <> "NO"
Application.DoEvents
Wend
hsgzr 2011-04-10
  • 打赏
  • 举报
回复
改成Web1.ReadyState <> 4 和Web1.Busy 是一样的,还是不能获得网页返回值“OK”或“NO”,获取的还是本网页(即提交网页)的内容。设置断点,稍候返回的是正确的值 ,还是不能判断返回网页是否完成。
无·法 2011-04-10
  • 打赏
  • 举报
回复
While Web1.Busy 改成
While WebBrowser1.ReadyState <> 4

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧