0

我有 Web 浏览器控件,其中包含许多链接和数据。所有这些数据都来自网络服务。

现在,当我单击第一个网络浏览器链接时,我想打开另一个网络浏览器控件。那么怎么做呢?

我的第一个网络浏览器代码是:

 webBrowser1.NavigateToString(htmlCode);
4

2 回答 2

1

您可以在 webBrowser1 下隐藏另一个 webBrowser。让我们称之为webBrowser2。现在,当用户点击 webBrowser1 上的链接时,将其捕获为一个字符串,比如说link. 现在您可以导航到link使用webBrowser2.Navigate(new Uri(link,UriKind.Absolute));. 不要忘记让 webBrowser1 隐藏而 webBrowser2 可见。

于 2012-08-30T04:21:21.683 回答
1

如果我理解你,你想在你的第一个 WB 控件(称为 WB1)中拦截 onClick 事件,并在另一个 WB 控件(称为 WB2)中打开该页面(单击超链接时)?

有几种方法可以做到这一点,此链接是否设置为在新窗口中打开?如果有,可以拦截NewWindow2事件为WB1,在WB1的NewWindow2事件中运行如下代码... Set pDisp = WB2.object

(它可能是 ppDisp 而不是 pDisp,但它会在您的事件自动生成时显示,请选择参数列表中显示的任何对象名称)。

否则,您可以在WB1事件的BeforeNavigate2事件期间拦截该请求,检查URL属性是否是您感兴趣的链接,如果是,则取消当前请求并重新发出一个新的请求,如下所示...(在WB1 BN2 事件)... Cancel = True ' 这将取消请求 WB2.Navigate2 URL, , "YourWB2sDocumentNameOrTargetFrameNameGoesHere"

第二行代码只是重新发出请求。

当然,YourWB2sDocumentNameOrTargetFrameNameGoesHere 是 TargetFrameName(或 WB2 控件/窗口中顶级文档或任何 iframe 的框架或文档名称)。这通常可以在 BODY tags name= 属性中找到,但如果您只想将其加载为 WB2 中的顶级文档,您甚至不需要这样做......如果您只想将其加载为WB2 中的父顶级文档,只需执行此操作... Cancel = True WB2.Navigate2 URL

通过引用 WB2,它只会在取消 WB1 请求后向 WB2 窗口发送相同的 URL 请求。

如果您需要更多帮助,请告诉我,并告诉我您的相处方式。

于 2012-08-31T11:41:48.850 回答