所以我有一个链接,我试图单击 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/