delphi中嵌入浏览器,TWebBrowser控件中,OnNewWindow2事件,
可在ie浏览器打开新窗体时截获消息,来控制是否打开ie浏览器
窗体,本人现在想实现在打开新窗体时,不使用ie浏览器打开,
而是获取新窗体的URL,利用自定义子窗体打开,实现起来难度
很大,希望能够得到高手指点,而且我也问过很多所谓的高手,
都没有结果,希望在此能够发现高手现身!
 
 

解决方案 »

  1.   

    procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin
     // 在这里截获新打开的URL
    showmessage(URL);
    //在这里自定义,打开,OK
    end;
      

  2.   

    可以用临时NameSpace, 继承IInternetProtocol---
    Edward Guo
    http://terabyte.blogchina.com
      

  3.   

    在FORM1、FORM2里各放一个WebBrowserprocedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    begin
          form2.Show;
          ppDisp:=form2.WebBrowser1.Application;
    end;当点击在新窗口打开的连接的时候,网页就会在FORM2打开了。
      

  4.   

    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    var
      NewWindow: TForm1;
    begin
      // a new instance of the form will be created
      NewWindow := TForm1.Create(self);  NewWindow.Show;
      ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
    end;