Windows phone 7 在wp7中处理web浏览器链接事件

Windows phone 7 在wp7中处理web浏览器链接事件,windows-phone-7,webbrowser-control,Windows Phone 7,Webbrowser Control,我正在使用WP7 WebBrowser控件。在这个页面上我有一个超链接。这个链接来自web服务。我想在我的应用程序代码隐藏(即C)中处理该超链接的单击事件,并且我想在此超链接单击事件上显示另一个web浏览器控件 WebBrowser控件是否有处理单击事件的方法?如果我理解您的意思,您希望在第一个WB控件调用此WB1中拦截onClick事件,并在另一个WB控件中单击该超链接时打开该页面,调用此WB2 有几种方法可以做到这一点,是否将此链接设置为在新窗口中打开?如果是这样,您可以截取WB1的NewW

我正在使用WP7 WebBrowser控件。在这个页面上我有一个超链接。这个链接来自web服务。我想在我的应用程序代码隐藏(即C)中处理该超链接的单击事件,并且我想在此超链接单击事件上显示另一个web浏览器控件


WebBrowser控件是否有处理单击事件的方法?

如果我理解您的意思,您希望在第一个WB控件调用此WB1中拦截onClick事件,并在另一个WB控件中单击该超链接时打开该页面,调用此WB2

有几种方法可以做到这一点,是否将此链接设置为在新窗口中打开?如果是这样,您可以截取WB1的NewWindow2事件,并在WB1的NewWindow2事件中运行以下代码

Set pDisp = WB2.object
它可能是ppDisp而不是pDisp,但当事件自动生成时,它会显示出来,请选择参数列表中显示的对象名称

否则,您可以在WB1事件的BeforeNavigate2事件期间拦截此请求,检查URL属性是否是您感兴趣的链接,如果是,请取消当前请求并重新发出一个新请求,如下所示。。。在WB1 BN2事件中

Cancel = True ' This cancels the request
WB2.Navigate2 URL, , "YourWB2sDocumentNameOrTargetFrameNameGoesHere"
第二行代码只是重新发出请求

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

Cancel = True
WB2.Navigate2 URL
通过引用WB2,在取消WB1请求后,它将只向WB2窗口发送相同的URL请求


如果您需要更多帮助,请告诉我您的情况。

您需要在哪个控件上创建一个事件,按钮/webbrowser?您的问题不清楚。@yogesh:对不起,我需要在我的web浏览器上的超链接上创建一个事件。您的webbrowser在哪个页面上加载本地html或联机?我想他是在从网站加载html如果你在网站上这样做,你就不能改变其他页面的点击事件。如果是你的本地html,那么你可以编写html代码来加载新页面。谢谢,但是我如何处理wb1控件内的内容事件。让我看看,当我单击第一个wb控件内容时,我只想打开新表单或wb。我的第一个wb控件包含来自数据库,它是文本和超链接,但我只想处理超链接event@MaaN好吧,有用吗?要执行您想要的操作,您真正需要做的就是在BeforeNavigate2事件期间拦截请求,取消它cancel=True,然后将该请求重新发送到第二个WB控件(即其名为WB2),代码为WB2.Navigate2 URL—其中URL由BeforeNavigate2事件提供,当您从事件列表下拉菜单中的事件列表中选择事件代码时,自动生成事件代码时,在其参数签名中显示viewabel。Cancel参数也是由BeforeNavigate2自动生成的事件片段签名提供的。@Erx_VB.下一步。编码器:请给我举个例子,以便我能很好地理解…bcos我无法理解您的答案'@Erx_VB.下一步。编码器:我只想处理我的web浏览器控件的链接事件。即当我当时单击WB控件的超链接时打开新的form@MaaN你知道我是如何在我的答案中发布代码的吗?在您的WB1_BeforeNavigate2事件中,添加上面的代码,代码如下:Cancel=True WB2.Navigate2 URL这是在VB中,因此更改为C,您只需放置;在每行末尾:Cancel=True;WB2.URL;告诉我它是否有效?当然,别忘了将第二个WebBrowser控件命名为WB2,好吗?