所以我有一个链接,我试图点击一个 WebBrowser 控件。问题是它在一个新选项卡中弹出,使 IE 打开。在 IE 中打开后我无法管理网页,所以我需要强制它以某种方式留在我的程序中。是否需要打开另一个 WebBrowser 控件或其他任何东西都没有关系,只要它在我的程序中说明即可。
问问题
2209 次
1 回答
0
有几种方法可以做到这一点,一种方法是遍历 DOM(文档对象模型)并找到在新窗口中打开的链接,并将其“target=”属性值更改为“target=_top”它将在当前 WB Control 容器的当前顶级页面中打开。
否则,您可以拦截一个 NewWindow2 事件,在该事件中编写以下代码(其中 WB1 是您的 WebBrowser 控件名称):
Processed = True
WB1.Navigate2 URL
这将告诉您的 WB Control 该请求已被处理(诱使它相信它已被处理),如果您只是这样做,什么都不会发生,所以在第一行之后您编写第二行告诉它打开它刚刚尝试在新窗口中打开的 URL,在当前窗口 (WB1) 中,所以实际上您只是重新发出请求,但是对于单击链接的同一个容器/WB 控件。
我已经用VB编写了代码,但是我确信理解并转移到c#没有问题。
让我知道你们相处得如何,如果还有什么我可以帮忙的。
于 2012-09-01T19:39:17.687 回答