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 中打印webBrowser.Source.ToString()仍将第一个 URL 显示为 webBrowser 的源,就好像它根本没有导航一样,尽管它仍然导航走了。禁用 JavaScript 不是一种选择,因为主页的其他一些元素仍然需要 JavaScript。

谢谢。

4

1 回答 1

0

您可以尝试编辑页面的 JS 代码并从中删除所有 ajax 导航。

于 2013-08-23T10:05:41.180 回答