WPF WebBrowser控件 - “导航”事件未触发

时间:2016-08-30 14:11:01

标签: c# wpf webbrowser-control

我有一个使用WPF Web浏览器的简单应用程序:

<WebBrowser x:Name="browserMovieLinks" Navigating="browserMovieLinks_Navigating"/>

和codebehind中的事件处理程序:

private void browserMovieLinks_Navigating(object sender, NavigatingCancelEventArgs e)
        {
    //do whatever
}

在过去的几年中,这一切都运行良好:当用户点击WebBrowser控件所显示的页面中的链接时,导航事件总是被触发。

然而,我最近注意到(不知道何时或为何不幸)这已停止工作。不知道是不是因为我在不同的机器上,或者在.NET库或WebBrowser控件下的IE实现中发生了变化,但现在事件不再发生了。

有关正在发生的事情的任何线索?

注意:在你指出它之前,我知道SO上还有其他类似的问题(例如:Webbrowser not firing events when you click links after navigating to a page)但是没有一个能给出正确的解决方案。他们都建议使用不同的第三方组件或者没有任何满意的答案,所以我打开这个组件是为了获得这个问题的正确答案。

2 个答案:

答案 0 :(得分:0)

(一个警告,我在带有WebBrowser控件的WinForms中遇到了这个问题,因此它可能与WPF中的问题不完全相同。)

您的链接是什么样的?我有一个类似的问题,是由锚链接中的目标参数设置为_blank引起的。

所以:

<a href="https://example.com" target="_blank">

可以在另一个窗口中正确打开链接,但不会触发任何导航事件,因为浏览器本身并未在任何地方进行导航。我的解决方案是删除目标参数:

<a href="https://example.com">

然后导致浏览器发生导航事件。

答案 1 :(得分:0)

只需结束这个问题:就我而言,这是系统级别的某种问题,IE在其他情况下的表现也很奇怪。在新安装的Windows上,它再次开始工作。