我的C#应用程序包含一个嵌入式Web浏览器,该类由System.Windows.Forms.WebBrowser类实现。用户可以使用该应用程序导航到网站,但是,当他们遇到包含弹出窗口的页面时,该弹出窗口将由Internet Explorer打开。
有谁知道如何抑制这种行为?
注意:我是C#的新手,因此在响应时请考虑到这一点。
最佳答案
您是否要积极阻止弹出窗口或在应用程序中处理它们?如果要自定义阻止,则必须实现DWebBrowserEvents2 interface,尤其是NewWindow3 method。 NewWindow3方法具有阻止窗口弹出窗口的特定功能(即,将Cancel参数设置为true)。这些方法还可以让您根据需要显示自己的窗口,尽管您必须提供自己的Form来承载另一个WebBrowser。
如果您希望看到一些真正的C#源代码提供WebBrowser控件的高级功能,那么我不得不说this article on CodeProject提供了几乎所有有关WebBrowser控件的知识。请务必下载源代码!
@Kramii是正确的,您还可以使用NewWindow2事件来阻止弹出窗口。 NewWindow3提供了其他参数,用于您是否希望检查URL或其他有关导航的数据,以实际上有时阻止并有时自己处理弹出窗口。