我打开一个网页,这个网页中有4 - 7个Frame,怎么样才可以判断已全部加载完毕了?
  我在webbrowser的OnDocumentComplete事件中写 if not webbrowser.busy then
 不行啊~ 因为每一个Frame加载完后,就会触发一次,根本没办法判断!
 我的设计思路是: 当网页加载完毕后,把该页中的所有连接读取出来,但是怎么判断才知道webbrowser已真正的加载完毕了呢??????
  各位大哥有什么好方法吗?

解决方案 »

  1.   

    TargetFrameName:=AnsiString('');
            PostData:=OleVariant(false);
            Heads:=AnsiString('');
            Flags:=OleVariant(0);
            WebBrowser1.Navigate(Trim(Edit1.Text),Flags,TargetFrameName,PostData,Heads);
            Sleep(500);
            while WebBrowser1.Busy or (WebBrowser1.ReadyState <> READYSTATE_COMPLETE) do
                Application.ProcessMessages;
      

  2.   

    判断OnDocumentComplete事件的参数中的Sender的IUnknown接口指针是否和webbrowser的IUnknown接口指针相同
      

  3.   

    TargetFrameName:=AnsiString('');
            PostData:=OleVariant(false);
            Heads:=AnsiString('');
            Flags:=OleVariant(0);
            WebBrowser1.Navigate(Trim(Edit1.Text),Flags,TargetFrameName,PostData,Heads);
            Sleep(500);
            while WebBrowser1.Busy or (WebBrowser1.ReadyState <> READYSTATE_COMPLETE) do
                Application.ProcessMessages;
      

  4.   

    学习
    下面这个事件不是吗?
    procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    beginend;
      

  5.   

    WebBrowser1.Navigate('http://www.163.com/);
    while WebBrowser1.ReadyState < READYSTATE_COMPLETE do
            Application.ProcessMessages;
    ShowMessage('加载完毕');
      

  6.   

    如用ReadyState < READYSTATE_COMPLETE 的话,如网页打不开,返回错误页,也一样会是complete呀