C# 如何确定网页是否在web浏览器中完全加载?

C# 如何确定网页是否在web浏览器中完全加载?,c#,asp.net,.net,winforms,webbrowser-control,C#,Asp.net,.net,Winforms,Webbrowser Control,我正在开发windows窗体应用程序,它是基于HTML的用户界面。 我需要知道网页何时完全加载。 我已经测试了许多web浏览器事件,如DocumentCompleted、IsBusy、ReadyState,但它们都没有响应我的预期。如果您可以使用jQuery库,那么它就非常简单 $(document).ready() { //your page is fully loaded }; 否则,您将不得不根据所使用的浏览器使用不同的方法。因为它是一个windows窗体应用程序,所以我假设您使

我正在开发windows窗体应用程序,它是基于HTML的用户界面。 我需要知道网页何时完全加载。
我已经测试了许多web浏览器事件,如DocumentCompleted、IsBusy、ReadyState,但它们都没有响应我的预期。

如果您可以使用jQuery库,那么它就非常简单

$(document).ready() {
    //your page is fully loaded
};
否则,您将不得不根据所使用的浏览器使用不同的方法。因为它是一个windows窗体应用程序,所以我假设您使用的渲染引擎是基于IE的。如果是这样的话,这可能对你有用:

if (document.attachEvent)
{
 document.attachEvent("onreadystatechange", function()
 {
      if (document.readyState === "complete")
      {
           document.detachEvent("onreadystatechange",
                arguments.callee);
           /* code to run on load */
      }
 });
}
如果您感兴趣,可以在此处找到其他依赖浏览器的解决方案:
Chamika Sandamal是正确的-您应该使用DocumentComplete事件,但是-检查“sender”对象。最后一个“完整”事件来自“浏览器”对象本身,而不是来自图像、文本等。。在装载时开火。页面上的所有元素触发DocumentComeDelete事件后,最后一个事件将来自浏览器本身。如果您可以将“发送者”强制转换为浏览器对象-在这里-这是浏览器加载完成事件。请注意,如果您在HTML中有任何“frame”标记,它们将在浏览器完成事件之后引发不同的dcomentcomplete事件。我认为“frame”被视为另一个HTML页面,因此它将有自己的“complete”事件。

您期望得到什么?当HTML页面完全加载时,我需要一个事件。您尝试过onload事件吗?发生了什么事?在.NET上的webBrowser没有onload事件。我不能在我的项目中使用jQuery库。这有什么困难吗?就像我说的,如果你不能使用jQuery,那么你就必须使用一个依赖浏览器的解决方案,而不是像jQuery那样依赖于库。