1

とにかく、Metro のハイパーリンク値を使用して、webview でハイパーリンクをクリックして c# にアクセスできますか? コンテンツを生成するために WebView..NavigateToString() を使用していますか?

4

2 に答える 2

5

独自の Javascript を使用して呼び出しInvokeScriptて、ユーザーがページから移動したときのリスナーを設定できます。これは、C# では次のようになります。

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

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

次に、 を使用ScriptNotifyして特定のメッセージをリッスンし、ページがアンロードされ、ユーザーが離れようとしていることを判断できます。残念ながら、ユーザーがどこに向かっているかを検出することはできません。また、ハイパーリンクが新しいウィンドウで開き、Web ビューがアンロードされない場合も、それを検出できません。

于 2012-09-21T19:49:22.410 に答える
1

Windows 8 の WebView は、Silverlight WebBrowser コントロールのような Navigating() イベントをサポートしていないため、ハイパーリンクを取得したり、ナビゲーションをキャンセルしたりすることはできません。

ただし、NavigateToString() メソッドを使用しているため、手動の JavaScript コードを記述し、WebView.ScriptNotify() イベントを使用して同じことを達成できます。

于 2012-07-12T08:20:48.877 に答える