如何检测是否在Metro中的WebView中单击了超链接?

时间:2012-06-18 04:47:31

标签: microsoft-metro

无论如何我可以在webview中点击超链接点击我的c#中的超链接值吗?我正在使用WebView..NavigateToString()来生成内容?

2 个答案:

答案 0 :(得分:5)

您可以使用自己的一些Javascript调用InvokeScript,以便在用户离开您的网页时设置一个监听器。这看起来像C#中的以下内容:

var navigationListenerString = @"
(function() {
  function leavingPage() {
    window.external.notify("LEAVING PAGE");
  }
  window.onbeforeunload = leavingPage;
})()";

webView.InvokeScript("eval", new string[] { navigationListenerString });

然后,您可以使用ScriptNotify侦听您的特定消息,以确定该页面正在卸载并且用户正在离开。遗憾的是,您无法检测用户的去向。此外,如果超链接在新窗口中打开并且webview未卸载,则无法检测到。

答案 1 :(得分:1)

由于Windows 8中的WebView不支持像Silverlight WebBrowser控件这样的Navigating()事件,因此无法获取超链接或取消导航。

但是由于你正在使用NavigateToString()方法,你可以编写一些手动的javascript代码,并在WebView.ScriptNotify()事件的帮助下实现相同的功能。