Skip to main content
 首页 » 编程设计

c#之使用 WebBrowser 类时奇怪的弹出行为

2024年02月03日31bluestorm

我的 C# 应用程序包含一个嵌入式 Web 浏览器,这由 System.Windows.Forms.WebBrowser 实现类(class)。用户可以使用该应用程序导航到网站,但是,当他们遇到包含弹出窗口的页面时,弹出窗口将由 Internet Explorer 打开。

有谁知道如何抑制这种行为?

注意:我是 C# 的新手,所以在回复时请考虑到这一点。

请您参考如下方法:

您是否希望主动阻止弹出窗口或在您的应用程序中处理它们?如果你想自定义阻塞,那么你必须实现 DWebBrowserEvents2 interface ,特别是 NewWindow3 method . NewWindow3 方法具有阻止窗口弹出窗口的特定功能(即将 Cancel 参数设置为 true)。如果您愿意,这些方法还可以让您显示自己的窗口,但您必须提供自己的表单来承载另一个 WebBrowser。

如果您希望看到一些真正的 C# 源代码为 WebBrowser 控件提供高级功能,我不得不说 this article on CodeProject提供了我所知道的关于 WebBrowser 控件的几乎所有信息。一定要下载源码!

@Kramii 是正确的,您也可以使用 NewWindow2 事件来防止弹出窗口。 NewWindow3 提供了额外的参数,如果您要检查 URL 或其他有关导航的数据,实际上有时会阻止,有时会自己处理弹出窗口。