【问题标题】:Open new pages also in TWebBrowser也在 TWebBrowser 中打开新页面
【发布时间】:2011-07-15 05:20:57
【问题描述】:

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

提前致谢。

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

【问题讨论】:

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

标签: delphi delphi-7 twebbrowser


【解决方案1】:

TWebBrowser 有一个 OnNewWindow2 事件。假设包含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

【讨论】:

    猜你喜欢
    • 2011-05-17
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多