【问题标题】:Detecting when the webpage is fully loaded with webbrowser control c#使用webbrowser控件c#检测网页何时完全加载
【发布时间】:2014-03-09 15:42:27
【问题描述】:

我正在使用WebBrowser 控件,有一个名为DocumentCompleted 的事件,该事件会为网页中的每个框架以及所有子文档(例如JS 和CSS)触发加载。

我的问题是如何检测该事件的最后一个条目,我的意思是如何检测页面何时完全加载,并且该事件不再触发。

我找了很多,我找到了这样的解决方案:

void webBrowser1_DocumentCompleted(object sender,
        WebBrowserDocumentCompletedEventArgs e)
{
    if (e.Url.Equals(webBrowser1.Url)) {
        // Here the page is fully loaded        
    }
}

但这不适用于所有网址!

有人知道如何实现吗?

提前感谢

【问题讨论】:

  • 鉴于在页面加载后通过 Javascript 进行额外服务器查询的网站数量众多,因此很难做到这一点。
  • 您可以在第一次点击 DocumentCompleted 后取消绑定事件,以确保它只触发一次。然后在调用 webBrowser1.Navigate(url);之前重新绑定;
  • 也许,这可以帮助stackoverflow.com/questions/635948/…

标签: c# webbrowser-control


【解决方案1】:

对于带有框架的文档,DocumentComplete 事件可能会被多次触发。同时,对于一个特定的文档,HTML DOM window.onload 事件只会被触发一次。 Here is how 使用这个事实来处理首页加载的完成。

OTOH,有些页面非常复杂,并且使用持续的 AJAX 更新。严格来说,可能并不总是能够以 100% 的概率确定这样的页面何时完成渲染。不过,你可以接近,here is how。

【讨论】:

    猜你喜欢
    • 2011-02-16
    • 2018-11-07
    • 2013-10-31
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多