webbrowser 下载并显示网页能不能分解以下步骤呢?webbrowser下载了所有html客户端代码,在显示出来以前我们可以去处理分析这些代码吗?我需要改变原始页面中的部分内容,,但是不能显示完毕再去处理!!
谢谢。。不知道这个想法是否现实或可行!!请老师们赐教!

解决方案 »

  1.   

    你可以使用idhttp来下载代码,处理完毕再赋给WebBrowser来出来呀
    盒子里有个增强的WebBrowser控件,是继承自WebBrowser,它里面提供了给WebBrowser赋值的相关代码,并且还有打开,保存,提取文本的代码。。
      

  2.   

    谢谢 senfore !这是一种方法,但是由于需要的特殊性,不能采取这咱方式!!也就是显示出来的页面的其它属性,location,cookie,等等都和原来一至。用idhttp好像只能满足显示的需要!!
    谢谢
      

  3.   

    下载页面完成会触发OnDocumentComplet
    你可以在这里面进行处理-------------------------------
    TWebBrowser流程讲解及如何判断下载网页成功 中国软件开发网络-->开发图书馆-->Delphi-->控件使用-->TWebBrowser流程讲解及如何判断下载网页成功
    关键字:
    TWebBrowser流程讲解及如何判断下载网页成功 贴文时间
    2001-1-11 9:07:56 文章类型: 
    原作
     mutant  原作 出处: 
     
    主  题:用TWebBrowser下载网页时如何判断是否成功?急!
    作  者:[CBuilder mailto:[email protected] ]
    所属论坛: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事件.