(以下是从网络上复制的Delphi代码,但C#中的WebBrowser也类似)
某资料上说,onnavigatecomplete2事件只在下载成功时才会触发,可我反复试验发现不管成功与否它都会触发。怎样判断是否下载成功呢?
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事件.