c# - 是否可以强制 WebBrowser 替换当前打开的窗口,而不是在新窗口中打开?

标签 c# browser webbrowser-control

所以我有一个链接,我试图单击 WebBrowser 控件。问题是它在新选项卡中弹出,使 IE 打开。在 IE 中打开后我无法管理网页,因此我需要强制它以某种方式保留在我的程序中。是否需要打开另一个 WebBrowser 控件或其他任何内容都没有关系,只要它在我的程序中说明即可。

最佳答案

有几种方法可以做到这一点,一种方法是遍历 DOM(文档对象模型)并找到在新窗口中打开的链接,并将其“target=”属性值更改为“target= _top"这样它将在当前 WB 控件容器的当前顶级页面中打开。

否则,您可以拦截一个 NewWindow2 事件,在该事件中写入以下代码(其中 WB1 是您的 WebBrowser 控件名称):

Processed = True
WB1.Navigate2 URL

这将告诉您的 WB 控制请求已被处理(欺骗它相信它已被处理),如果您只是这样做,则什么也不会发生,因此在第一行之后您写第二行告诉它打开它刚刚尝试在新窗口中打开的 URL,在当前窗口 (WB1) 中,所以实际上您只是重新发出请求,但对于单击链接的同一容器/WB 控件。

我已经用 VB 编写了代码,但是我确信理解和转移到 c# 不是问题。

让我知道你相处得怎么样,如果还有什么我可以帮忙的。

关于c# - 是否可以强制 WebBrowser 替换当前打开的窗口,而不是在新窗口中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206758/

相关文章:

c# - EventHandle.WaitOne + WebBrowser = 等待 DocumentComplete 时死锁

c#启动一个任务需要多长时间

c# - 正则表达式查找 css 引用

c# - 如何将多个数据库值返回到文本框?

javascript - 如何找出访问者的 RAM 和 GPU 信息?

c# - 在运行时使用 jQuery 将 JavaScript 注入(inject) WebBrowser

javascript - 脚本在 Web 浏览器控件中不起作用

c# - 调度程序不执行作业,似乎甚至没有注册它

php - 使用<img src =""/>时如何从远程界面查看本地网络的图像?

html - 现代浏览器中的表单发布行为是否发生了变化? (或浏览器如何处理双击)