我用delphi里的webbrowser组件写了一个简单的浏览器在某个页面A中,点击某个按钮后,页面会向服务器提交一些信息然后返回某个执行后的页面B,我的目的就是拦截这个执行后返回的页面B,不让他出现(因为页面很大,狂卡)再然后返回指定页面A,请问怎么实现?在哪里运行呢? WebBrowserDocumentComplete还是WebBrowserDownloadComplete???比如:假设啊,我点击 www.baidu.com 然后服务器给我响应了,他给我返回的是www.google.com,那么我怎么做才能达到服务器响应我的请求,同时webbrowser拦截掉www.google.com这个页面,并返回到www.baidu.com求代码,谢谢~

解决方案 »

  1.   

    哦,对了,还要能判断出返回的页面是www.google.com,怎么实现呢?
      

  2.   

    在beforenavigate那里检测跳转的网页地址,一旦发现打开了那个跳转页的地址,就停止,这样就可以了,或马上打开一个空白网页,这样就不会出现跳转的大页面了
      

  3.   

    在Twebbrowser.onBeforeNavigate2事件中检查。
    TForm.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin
    if(UpperCase(URL)=UpperCase('http://www.google.com') )then //网页URL是否可以访问
        begin
         Cancel:=True;
        URL:='http://www.baidu.com';
        (pDisp as IWebBrowser2).Navigate2(URL,Flags,TargetFrameName,PostData,Headers);
        end;
    end;