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

标签 c# browser

我的 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/

相关文章:

python - 如何获取网页中的特定框架并检索其内容

browser - 如何从小程序中获取浏览器类型和版本?

browser - HTTP/2 是否提高了每台主机的连接限制?

c# - IE 9 中的 JavaScript 问题

c# - Entity Framework 6.0 原始 SQL 以查看模型

c# - 记录操作延迟

html - 防止接收大量数据时浏览器超时

c# - HttpClient 发送空 POST 数据

c# - 如何为我的 ASP.NET Web 应用程序获取 Google Api OAuth 2 刷新 token ?

android - Android 浏览器/GUI(古吉拉特语)上的印度语呈现不当