2

コントロールにページをロードしましwebBrowserたが、ある条件に基づいて、特定の URL へのナビゲーションを防止したいと考えています。ただし、これらのナビゲーションはすべて、AJAX を介して非同期で行われます。を使用してナビゲーションを防止しようとしましたe.Cancel = true;が、それでもナビゲートされます。このナビゲーションを防ぐにはどうすればよいですか?

    private void webBrowser_Navigating(object sender, Microsoft.Phone.Controls.NavigatingEventArgs e)
    {
        MessageBox.Show("Navigating"); //This gets executed during AJAX navigation, which means the Navigating event occurs even during AJAX navigations
        if (e.Uri.ToString().Contains("#!/restricted"))
        {
            MessageBox.Show("URL Found. Trying to cancel"); //This also gets executed when navigating away to that specific link. AJAX link, like ../index.php#!/restricted.php
            e.Cancel = true;
            return;
        }
     }

実行後に MessageBox に を出力すると、最初の URL がwebBrowserwebBrowser.Source.ToString()のソースとして表示されますが、まだナビゲートされていないかのように表示されます。メイン ページの他の要素にはまだ JavaScript が必要なため、JavaScript を無効にすることはできません。

ありがとう。

4

1 に答える 1

0

ページの JS コードを編集して、そこからすべての ajax ナビゲーションを削除してみてください。

于 2013-08-23T10:05:41.180 に答える