在TWebBrowser中也打开新页面

Cyp*_*rUS 3 delphi delphi-7 twebbrowser

我已经创建了一个带有twebBrowser的应用程序.问题是当我点击一些链接时,例如gmail,它会在我的默认浏览器(即IE)的新窗口中打开.我如何让它像firefox或chrome等一样工作,打开窗口中点击的链接.网址应该在TWebBrowser的窗口中打开.我必须在运行时使用TWebBrowser在运行时创建一个新表单吗?这样的代码不需要,想法会做

提前致谢.

PS我的组织阻止Gmail,Facebook等.但是通过我的TWebBrowser,我可以打开它们.我的QA ppl可以在他们的日志中看到吗?我的猜测是否定的,从那时起他们就会阻止它.你对此有何评论?

Cos*_*und 5

TWebBrowser有一个OnNewWindow2事件.假设持有the的表单TWebBrowser已命名Form1并且web控件本身已命名WebBrowser1,请编写如下处理程序:

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var NF: TForm1;
begin
  NF := TForm1.Create(Application);
  NF.Visible := True;
  NF.WebBrowser1.RegisterAsBrowser;
  ppDisp := NF.WebBrowser1.DefaultInterface;
end;
Run Code Online (Sandbox Code Playgroud)

这将创建一个新窗口,TWebBrowser当"click"应该通向一个新窗口时会显示一个新窗口.