我的 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 或其他有关导航的数据,实际上有时会阻止,有时会自己处理弹出窗口。
关于c# - 使用 WebBrowser 类时奇怪的弹出行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/219817/