TWebBrowser流程讲解及如何判断下载网页成功
敬业的IT人
互联网
佚名
2008-1-4 16:03:26
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事件
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事件
- 最新文章
- 在Delphi与C 之间实现函数与对象共享[01-04]
- 类,接口与动态链接库[01-04]
- 使用ADO,多线程访问ACCESS数据库的开发。[01-04]
- 当单击DBGrid中的标题栏时,进行排序[01-04]
- 使用静态数组应该注意的问题[01-04]
- 用API实现在MSN的信息提示[01-04]
- 相关文章
- [推荐下载]MacTracker苹果机型数据库[01-04]
- 【强烈推荐】MacZin 过期杂志开放下载!![01-04]
- Kmdkit的下载和安装[01-04]
- PowerBuilder 10 Beta1下载和相关信息[01-04]
- Windows Vista:让BT下载速度更快[01-03]
- 手动设置IE7同时下载的下载数量[01-03]
