我的C#应用程序包含一个嵌入式Web浏览器,该类由System.Windows.Forms.WebBrowser类实现。用户可以使用应用程序导航到网站,但是,当他们遇到包含弹出窗口的页面时,弹出窗口将由Internet Explorer打开。使用WebBrowser类时的好奇弹出行为
有谁知道如何抑制这种行为?
注意:我是C#的新手,所以请在回应时考虑这一点。
我的C#应用程序包含一个嵌入式Web浏览器,该类由System.Windows.Forms.WebBrowser类实现。用户可以使用应用程序导航到网站,但是,当他们遇到包含弹出窗口的页面时,弹出窗口将由Internet Explorer打开。使用WebBrowser类时的好奇弹出行为
有谁知道如何抑制这种行为?
注意:我是C#的新手,所以请在回应时考虑这一点。
您是否正在寻找积极阻止弹出窗口或在您的应用程序处理?如果你想自定义阻塞,那么你必须实现DWebBrowserEvents2 interface,特别是NewWindow3 method。 NewWindow3方法具有阻止窗口弹出窗口的特定功能(即将Cancel参数设置为true)。如果您愿意,这些方法也可以让您显示自己的窗口,但您必须提供自己的窗体来托管另一个WebBrowser。
如果你想看到一些真正的C#源代码提供WebBrowser控件的高级功能,我不得不说,this article on CodeProject提供了几乎所有我知道的有关WebBrowser控件。一定要下载源码!
@克拉米是正确的,你也可以使用NewWindow2事件来防止弹出。 NewWindow3提供了额外的参数,如果你想检查URL或其他有关导航的数据实际上有时会阻止并有时自己处理弹出窗口。
IIRC您可以在WebBrowser控件上捕获NewWindow2事件并设置Cancel = true以防止弹出。
这篇文章可以帮助:
http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx#GoalBlock