Как определить, полностью ли загружена веб-страница в веб-браузере? - PullRequest
4 голосов
/ 18 февраля 2012

Я работаю над приложением Windows Form, которое является базовым пользовательским интерфейсом HTML. Мне нужно знать, когда веб-страница полностью загружена. Я протестировал многие события в веб-браузерах, такие как DocumentCompleted, IsBusy, ReadyState, но ни одно из них не ответило на мои ожидания.

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

Если вы можете использовать библиотеку 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/

0 голосов
/ 19 февраля 2012

Chamika Sandamal верна - вы должны использовать событие DocumentComplete, НО - проверить объект 'sender'.Самое последнее «полное» событие происходит от самого объекта «браузер», а не от изображений, текста и т. Д., Которые запускают его при загрузке.После того, как все элементы на странице вызовут событие DocumentComelete, самое последнее событие будет происходить из самого браузера.Если бы вы могли привести «sender» к объекту браузера - вот и все - это событие завершения загрузки браузера.Просто обратите внимание, что если у вас есть какие-либо теги frame в HTML, они будут вызывать различные события DcoumentComplete после события браузера Complete.Я думаю, что «фрейм» рассматривается как другая HTML-страница, поэтому он будет сам по себе «завершать» события ..

...