Delphi 也可以在TWebBrowser中打开新页面

Delphi 也可以在TWebBrowser中打开新页面,delphi,delphi-7,twebbrowser,Delphi,Delphi 7,Twebbrowser,我已经创建了一个包含twebBrowser的应用程序。问题是当我点击一些链接时,比如gmail,它会在我默认浏览器(IE)的一个新窗口中打开。我如何让它像firefox或chrome等一样工作,在他们的窗口中打开点击的链接。url应在TWebBrowser窗口中打开。为此,我必须在运行时创建一个新表单,其中包含TWebBrowser吗?代码本身不需要,想法就可以了 提前谢谢 另外,我的组织屏蔽了Gmail、Facebook等,但通过我的TWebBrowser,我可以打开它们。我的QA ppl能在

我已经创建了一个包含twebBrowser的应用程序。问题是当我点击一些链接时,比如gmail,它会在我默认浏览器(IE)的一个新窗口中打开。我如何让它像firefox或chrome等一样工作,在他们的窗口中打开点击的链接。url应在TWebBrowser窗口中打开。为此,我必须在运行时创建一个新表单,其中包含TWebBrowser吗?代码本身不需要,想法就可以了

提前谢谢


另外,我的组织屏蔽了Gmail、Facebook等,但通过我的TWebBrowser,我可以打开它们。我的QA ppl能在他们的日志中看到吗?我猜不会,因为他们会阻止它。您对TWebBrowser有一个
onnewIndow2
事件有何评论。假设保存
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;

这将创建一个新窗口,当“单击”应该指向一个新窗口时,将使用一个新的
TWebBrowser

关于您的“PS”:您的站点很可能在网络级别被阻止,而不是在应用程序级别;如果默认IE浏览器无法访问它们,则您的
TWebBrowser
也将无法访问它们。更不用说
TWebBrowser
实际上是一个
IE
窗口,所以它实际上是同一个浏览器。但是我的IE无法访问网站,我的TWebBrowser可以。。我就是这么说的。是的,他们可以在日志中看到。但是,如果他们使用IE选项而不是网络/路由器设置来阻止站点(否则我无法解释你的TWebBrowser可以访问它们,因为@Cosmin说这实际上是一个IE窗口),那么你可能(!)会侥幸逃脱。然而,问问你自己,为什么你的组织会屏蔽这些网站(人们在这些网站上花费了太多的时间?),以及这样尝试和阻挠公司政策是否明智。@marjan:有时候ppl有必要访问“外部”网站,因为他们也在公司之外生活。我不打算在这些网站上浪费时间,有时也许是的,我会用它:)@sunandan:我不是说你在这些网站上花了太多时间,但其他人这么做可能是他们被阻止的原因,你需要问问自己,在这方面尝试规避公司政策是否明智。。。