我正在使用Windows基础用户界面的Windows表单应用程序。 我需要知道网页何时完全加载。 我已经测试了许多Web浏览器事件,例如DocumentCompleted,IsBusy,ReadyState,但它们都没有响应我的预期。
答案 0 :(得分:3)
如果你可以使用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 */
}
});
}
如果您有兴趣,可以在此处找到其他与浏览器相关的解决方案: http://dean.edwards.name/weblog/2006/06/again/
答案 1 :(得分:0)
Chamika Sandamal是正确的 - 你应该使用DocumentComplete事件但是 - 检查'sender'对象。最后一个'完整'事件来自'浏览器'对象本身,而不是来自图像,文本等......在加载时触发它。在页面上的所有元素将触发DocumentComelete事件后,最后一个事件将来自浏览器本身。如果您可以将“发件人”投射到浏览器对象 - 这里就是 - 它是浏览器加载完成事件。请注意,如果您在HTML中有任何“框架”标签,他们将在浏览器完成事件后引发不同的DcoumentComplete事件。我认为'frame'被视为另一个HTML页面,因此它将拥有自己的“完整”事件..