Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测WPF WebBrowser中的URL更改_C#_.net_Wpf_Url_Webbrowser Control - Fatal编程技术网

C# 检测WPF WebBrowser中的URL更改

C# 检测WPF WebBrowser中的URL更改,c#,.net,wpf,url,webbrowser-control,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._PasswordSyncWebLin

在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;
}
您可以使用事件来检测甚至取消webBrowser中的导航

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

    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;
        }
    }
您可以使用事件来检测甚至取消webBrowser中的导航

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

    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;
        }
    }

感谢@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
    }
}

感谢@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
    }
}

嗨,谢谢你的快速回复。当我运行生成时,我得到以下错误:“用户未处理NullReferenceException”App.borwserLinkCheck=App.\u PasswordSyncWebLink;导航(新Uri(App.borwserLinkCheck));我在按钮事件中调用webBrowser,然后页面加载,我得到了错误。@MarcinLimanski用代码更新您的问题,以便更简单地检测您的问题是用户未处理
NullReferenceException的任何建议。
?@MarcinLimanski您尝试过调试它吗?
NullReferenceException
在什么时候引发?假设它被提升到
导航
事件,因为它是注释出来的…您好,感谢您的快速响应。当我运行生成时,我得到以下错误:“用户未处理NullReferenceException”App.borwserLinkCheck=App.\u PasswordSyncWebLink;导航(新Uri(App.borwserLinkCheck));我在按钮事件中调用webBrowser,然后页面加载,我得到了错误。@MarcinLimanski用代码更新您的问题,以便更简单地检测您的问题是用户未处理
NullReferenceException的任何建议。
?@MarcinLimanski您尝试过调试它吗?
NullReferenceException
在什么时候引发?假设它被提升到
导航
事件,因为它被注释掉了…比较应该仍然使用
=与原始答案相同。否则,您实际上不会检测到
Uri
已更改,而是检查它是否保持不变。比较可能仍应使用
=与原始答案相同。否则,您实际上不会检测到
Uri
已更改,而是检查它是否保持不变。