有的网页上有<a href"……" target=_new>这种情况下点击加载在WebBrowser的连接时会使用IE窗口去打开,我的问题是,如果网页没有target=_new之类的东东,新的网页仍会在我的WebBrowser中打开,我如何能让我的TWebBrowser加载一个页面(这个页面可能是某个网站的,我无法修改),而点击这个页面中的链接,总是在新的IE窗口中打开(而不是在这个WebBrowser中打开)?

解决方案 »

  1.   

    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;説明:在「OnNewWindow2」event中写。
      

  2.   

    //将连接作为IE的执行参数打开~~
    uses ShellAPI;procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin
      Cancel := True; //取消打开
      ShellExecute(Handle, nil, 'IEXPLORE.EXE', PChar(string(URL)), nil, SW_SHOW);
    end;