使用WebBrowser类时出现奇怪的弹出行为

时间:2008-10-20 20:35:54

标签: c# browser

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

IIRC你可以在WebBrowser控件上捕获NewWindow2事件并设置Cancel = true以防止弹出窗口。

本文可能有所帮助:

http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx#GoalBlock