如何防止WPX中的WebBrowser控件中的AJAX导航远离页面

时间:2013-03-30 10:02:55

标签: c# windows-phone-7 browser windows-phone

我有一个页面加载到我的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。

感谢。

1 个答案:

答案 0 :(得分:0)

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