关于判断WebBrowser1加载状态 转帖

来源:互联网 发布:sql select表 编辑:程序博客网 时间:2024/05/16 17:02

每次写有关于这个控件的程序,都重新想了下怎么判断加载否完成,然后调试了很久。。哎,,
今天一上博客就看到dasparion也刚好发了这方面的资料

主要有两种方法:WebBrowser的ReadyState方法和Busy方法
还知道了,加载完成后出发了一个事件:
Private Sub WebBrowser1_DownloadComplete()
...触发这个事件
Sub End

之所以不好判断是否加载完成,主要是,程序加载的时候,WebBrowser1的状态是FLASE,
下面一个例子:
Private Sub Form_Load()

Debug.print WebBrowser1.Busy '程序启动开始,为FLASE,也就是WebBrowser1不工作的状态,
我们判断是否加载完成也就要判断Busy的状态,
那么首先判断的是为FLASE,初始化,WebBrowser1是不工作的,那就会造成误判了,,,因为这样,就一直在调试.

WebBrowser1.Navigate "www.baidu.com"
Do While WebBrowser1.Busy'等待加载完成.
DoEvents
Loop

MsgBox "加载完成!", vbOKOnly, "!"

End Sub

这个是dasparion那的...比较具体,很有用,转来收藏啦.

ReadyState的五种状态
0:(Uninitialized) the send( ) method has not yet been invoked.1:(Loading) the send( ) method has been invoked,request in progress. 
2:(Loaded) the send( ) method has completed,entire response received.
3:(Interactive) the response is being parsed.
4:(Completed) the response has been parsed,is ready for harvesting.
<p>0-(未初始化)还没有调用send()方法
1-(载入)已调用send()方法,正在发送请求
2-(载入完成)send()方法执行完成,已经接收到全部响应内容<br>
3-(交互)正在解析响应内容<br>
4-(完成)响应内容解析完成,可以在客户端调用了测试代码(添加WebBrowser控件并命名为:Browser,添加CommandButton控件命名为cmdTest)
Private Sub cmdSTest_Click()
Browser.Navigate "http://hi.baidu.com"
Do Until Browser.ReadyState = 4
DoEvents
LoopMsgBox "加载完成!", vbOKOnly, "!"
End Sub
0 0
原创粉丝点击