WebBrowser中如何得知页面载入结束
页面包括普通页面、帧页面、提交后的页面

解决方案 »

  1.   

    有一个OnDocumentComplete事件,框架的情况是每个页面(document)都会产生这个事件。
      

  2.   

    我想有没有能写一个通用的函数,在所有页面结束时返回一个值,帧页面里如果有多个页面,就会触发多次OnDocumentComplete事件,我不能把所有的处理事件写入OnDocumentComplete事件
      

  3.   

    web.ReadyState <> READYSTATE_COMPLETE
      

  4.   

    楼上的做法不能适应多frame。楼主可以尝试:procedure Button1.OnClick(Sender: TObject);
    begin
      FBusy := True; //声明FBusy为Boolean全局变量。
      WebBrowser1.Navigate(url);
      while FBusy do Application.ProcessMessages;
    end;
    procedure TFormBaseNavigate.WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    var
      lpWBDisp: IDispatch;
    begin
      (Sender as TWebBrowser).ControlInterface.QueryInterface(IDispatch, lpWBDisp);
      if (pDisp = lpWBDisp ) then FBusy := False;
    end;