【问题标题】:Detect URL change in WPF WebBrowser检测 WPF WebBrowser 中的 URL 更改
【发布时间】:2013-10-04 14:52:53
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    您可以保存当前的WebBrowser url,并将其与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;
            }
        }
    

    【讨论】:

    • 您好,感谢您的快速回复。当我运行构建时,我得到
      这个错误 "NullReferenceException was unhandled by the user" App.borwserLinkCheck = App._PasswordSyncWebLink; webBrowser.Navigate(new Uri(App.borwserLinkCheck));我在按钮事件中调用 webBrowser,然后页面加载并出现错误。
    • @MarcinLimanski 使用您的代码更新您的问题,以便更轻松地检测您的问题所在
    • NullReferenceException was unhandled by the user有什么建议吗?
    • @MarcinLimanski 你试过调试吗? NullReferenceException 是在什么时候提出的?假设不管Navigating事件,它都会被提出来,因为它被注释掉了......
    【解决方案2】:

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

    【讨论】:

    • 比较应该仍然使用!=,就像原来的答案一样。否则,您实际上并没有检测到 Uri 发生了变化,而是检查它是否保持不变。
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2011-06-02
    • 2010-11-30
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2018-01-11
    相关资源
    最近更新 更多