2011-07-15 50 views
3

我已经创建了一个应用程序,其中包含一个twebBrowser。问题是当我点击某个链接时,在gmail中,它会在我的默认浏览器(即IE)的新窗口中打开。我如何使它像Firefox或铬等工作,打开他们的窗口中点击链接。网址应该在TWebBrowser的窗口中打开。我必须在运行时为它创建一个新的窗体与TWebBrowser它在运行时?代码并不需要这样,想法会做在TWebBrowser中打开新页面

在此先感谢。

P.S.我的组织阻止Gmail,Facebook等,但通过我的TWebBrowser,我可以打开它们。我的质量保证人员可以在他们的日志中看到吗?我的猜测是否定的,从那时起他们会阻止它。什么是这个

+1

关于你的“PS”:您的网站是最有可能受阻于网络层,而不是在应用水平;如果您的默认IE浏览器无法访问它们,您的'TWebBrowser'也将无法访问它们。更何况'TWebBrowser'实际上是一个'IE'窗口,所以它真的*是*相同的浏览器。 –

+0

但我的IE浏览器无法访问网站,我的TWebBrowser可以..这就是我说的。 – CyprUS

+0

是的,他们可以在日志中看到它。但是,如果他们使用IE选项而不是网络/路由器设置阻止网站(否则我不能解释你的TWebBrowser可以访问它们,因为@Cosmin说这实际上是一个IE窗口),你可能会(!)摆脱它。然而,问自己为什么你的组织阻止这些网站(人们花费太多时间在他们身上?)以及试图阻止这样的公司政策是明智的。 –

回答

5

TWebBrowser您的评论有一个OnNewWindow2事件。假设形式持有TWebBrowser被命名为Form1和网络控制本身被命名为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应该当“点击”导致一个新的窗口。