WPF WebBrowser 控件 LoadCompleted 事件未触发

问题描述 投票:0回答:1

我正在尝试使用 WPF WebBrowser Control 进行导航并在加载后获取文档。

导航事件已正确触发(但文档仍不完整)

但是 LoadCompleted 事件从未被触发...

我正在这个瑞士网址上尝试这个https://prestations.vd.ch/pub/actiscamac/101091

但是我在 https://www.google.com

上也遇到了同样的行为

这是我的简单代码:

using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;

namespace AvisServicesCrawler
{
    /// <summary>
    /// Interaction logic fot MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private static readonly string url = @"https://prestations.vd.ch/pub/actiscamac/101091"; // @"https://www.google.com";
        private static readonly WebBrowser browser = new WebBrowser();

        public MainWindow()
        {
            InitializeComponent();
            // Register an event handler for the browser.Navigated event fired when browser has navigated to a new document and has begun loading it.
            browser.Navigated += browserNavigated;
            // Register an event handler for the browser.LoadCompleted event fir ed when document is loaded.
            browser.LoadCompleted += browserLoadCompleted;
        }

        private void goNavigateButton_Click(object sender, RoutedEventArgs e)
        {
            // Navigate to the desired URL: 
            browser.Navigate(url);
        }
        private void browserNavigated(object sender, NavigationEventArgs e)
        {
            mshtml.HTMLDocument document = (mshtml.HTMLDocument)browser.Document;
        }

        private void browserLoadCompleted(object sender, NavigationEventArgs e)
        {
            mshtml.HTMLDocument document = (mshtml.HTMLDocument)browser.Document;
        }
    }
}
wpf events
1个回答
0
投票

删除静态

browser
字段并将
WebBrowser
添加到 XAML 标记中:

然后,在忽略页面上的脚本错误后,您应该会收到一个

LoadCompleted
事件。

如果您不打算在应用程序中显示网页,则没有理由使用

WebBrowser
。如果您只想解析响应,请使用
HttpClient
或类似的。

另请注意,当涉及到在本机 Windows 应用程序中嵌入现代 Web 内容时,

WebBrowser
控件已有效地被 WebView2 控件取代。

© www.soinside.com 2019 - 2024. All rights reserved.