【问题标题】:handle web browser link event in wp7在 wp7 中处理 Web 浏览器链接事件
【发布时间】:2012-08-30 10:15:58
【问题描述】:

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

有没有办法让 WebBrowser 控件处理点击事件?

【问题讨论】:

  • 您需要在哪个控件上控制事件,按钮/网络浏览器?您的问题不清楚。
  • @yogesh:sorry 但我需要在我的网络浏览器控件上的超链接事件
  • 您是否创建了超链接?您的网络浏览器在哪个页面加载您的本地 html 或在线?
  • stackoverflow.com/questions/12189711/… 我认为他正在从网络加载 html
  • 如果你是在网页上做的,你不能改变其他一些页面点击事件。如果是你的本地 HTML,那么你可以编写 HTML 代码来加载新页面。

标签: windows-phone-7 webbrowser-control


【解决方案1】:

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

您可以通过多种方式执行此操作,此链接是否设置为在新窗口中打开?如果是这样,可以拦截NewWindow2事件为WB1,在WB1的NewWindow2事件中运行如下代码...

Set pDisp = WB2.object

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

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

Cancel = True ' This cancels the request
WB2.Navigate2 URL, , "YourWB2sDocumentNameOrTargetFrameNameGoesHere"

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

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

Cancel = True
WB2.Navigate2 URL

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

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

【讨论】:

  • 谢谢,但是我如何处理我的 wb1 控件中的内容事件。让我们看看当我点击我的第一个 wb 控件内容时我只想打开新表单或 wb。我的第一个 wb 控件包含来自数据库,它是文本和超链接,但我只想处理超链接事件
  • @MaaN 好吧,它有用吗?要做你想做的事,你真正需要做的就是在 BeforeNavigate2 事件期间拦截请求,取消它(Cancel = True),然后将该请求重新发送到你的第二个 WB Control(比如,它的名称为“WB2”) ,并且代码将是“WB2.Navigate2 URL” - 其中 URL 由 BeforeNavigate2 事件提供,当您从事件的事件列表中选择事件代码时,它的参数签名中的 viewabel 会自动生成列表下拉菜单。 “取消”参数也由 BeforeNavigate2 自动生成的事件参数签名提供。
  • @Erx_VB.NExT.Coder:请给我一个例子,这样我就可以很好地理解......因为我无法理解你的答案'
  • @ Erx_VB.NExT.Coder:我只想处理我的网络浏览器控件的链接事件。即当我点击 WB 控件的超链接时打开新表单
  • @MaaN 你看到我是如何在我的答案中发布代码的吗?在您的 WB1_BeforeNavigate2 事件中,添加上面的代码,就是这样: Cancel = True WB2.Navigate2 URL 这是在 VB 中,所以更改为 C#,您只需要放置 ;在每一行的末尾:Cancel = True; WB2.Navigate2 网址;告诉我它是否有效?当然,不要忘记将你的第二个 WebBrowser Control 命名为“WB2”,好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
相关资源
最近更新 更多