检测WPF WebBrowser中的URL更改

时间:2013-10-04 14:52:53

标签: c# .net wpf url webbrowser-control

在WPF中使用WebBrowser,如何检查URL中的更改?有什么可以在遇到条件时被解雇吗?下面我有一个按钮事件,它将App.browserLinkCheck设置为目标URL,并打开WebBrowser实例。

private void btNextWelcomeNewHire_Click(object sender, System.Windows.RoutedEventArgs e)
{
    App.borwserLinkCheck = App._PasswordSyncWebLink;
    webBrowser.Navigate(new Uri(App.borwserLinkCheck));
    //webBrowser.Navigating += webBrowser_Navigating;
}

2 个答案:

答案 0 :(得分:4)

您可以使用Navigating事件来检测甚至取消webBrowser中的导航。

您可以保存当前的WebBrowser网址,并将其与Navigating事件中收到的新网址进行比较,然后比较它们以查看它是否已更改。

    private Uri currentUri;

    void myBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        if (currentUri.AbsolutePath != e.Uri.AbsolutePath)
        {
            // Url has changed ...

            // Update current uri
            currentUri = e.Uri;
        }
    }

答案 1 :(得分:0)

感谢@Omribitan示例,我通过调整代码设法解决了NullException问题:

private String targetStringToCompare = "www.example.com";

void myBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
{
    if (e.Uri.AbsoluteUri.ToString() == targetStringToCompare)
    {
        // Do something when the change will be detected
    }
}