首页  编辑  

TWebBrowser流程讲解及如何判断下载网页成功

Tags: /超级猛料/OS.操作系统/IE.扩展/TWebBrowser/   Date Created:
TWebBrowser流程讲解及如何判断下载网页成功
中国软件开发网络-->开发图书馆-->Delphi-->控件使用-->TWebBrowser流程讲解及如何判断下载网页成功        
关键字:
TWebBrowser流程讲解及如何判断下载网页成功        贴文时间
2001-1-11 9:07:56        文章类型:
原作                
mutant  原作        出处:        
       
       
主  题:用TWebBrowser下载网页时如何判断是否成功?急!
作  者:[CBuilder mailto:books@allfa.com.cn ]
所属论坛:Delphi
问题点数:20
回复次数:1
发表时间:2001-1-11 8:30:00
       
某资料上说,OnNavigateComplete2事件只在下载成功时才会触发,可我反复试验发现不管成功与否它都会触发。怎样判断是否下载成功呢?急!!!        
回复贴子:        
 回复人:mutant(异类) (2001-1-11 9:06:00)        得0分        
procedure TfrmIE2.WebDocumentComplete(Sender: TObject; pDisp: IDispatch;
 var URL: OleVariant);
看见了吧,是OnDocumentComplete事件触发的下载完毕,还会告诉你是那个URL被下载完毕了,非常好用哦.因为页面中如果有IFrame,那么每个IFrame会触发一个DocumentComplete事件.
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
procedure TfrmIE2.WebDocumentComplete(Sender: TObject; pDisp: IDispatch;
 var URL: OleVariant);
begin
 if not(Web.Busy) then begin
   ShowMessage('下载完毕');
 end;
end;
对于每次连接(不论是鼠标点击还是用Navigate2方法连接),TWebBrowser的流程是这样的:
OnBeforeNavigate2          <--开始链接时会触发此事件
OnNavigateComplete2        <--成功的链接到此网页(以后才会有下面的事件)
OnDownloadBegin            <--开始下载
OnDownloadComplete          <--下载结束
OnDocumentComplete          <--页面下载完毕
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.