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事件.