2012-02-18 78 views
4

我正在開發基於HTML的用戶界面的Windows窗體應用程序。 我需要知道何時完全加載網頁。 我已經測試過很多web瀏覽器事件,比如DocumentCompleted,IsBusy,ReadyState,但沒有一個響應我的預期。如何確定網頁是否完全在網頁瀏覽器中加載?

+0

你期望什麼,你會得到什麼? – Softnux 2012-02-18 08:42:33

+0

我需要一個事件,當HTML頁面被加載完全觸發。 – 2012-02-18 08:46:42

+0

你有沒有嘗試onload事件?發生了什麼? – 2012-02-18 08:47:51

回答

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/

+0

我無法在我的project.is中使用jQuery庫來完成任何乳清。 – 2012-02-18 09:00:32

+0

就像我說的,如果你不能使用jQuery,那麼你將不得不使用依賴瀏覽器的解決方案之一,而不依賴像jQuery這樣的庫。 – sngregory 2012-02-18 09:11:56

0

Chamika Sandamal是正確的 - 你應該使用DocumentComplete事件BUT - 檢查'發件人'對象。最後一個「完整」事件來自「瀏覽器」對象本身,而不是來自圖像,文本等,在加載時觸發它。在頁面上的所有元素都會觸發DocumentComelete事件後,最後一個事件將來自瀏覽器本身。如果你可以將'發件人'轉換爲瀏覽器對象 - 在這裏你可以 - 這是瀏覽器加載完成事件。只要注意,如果你在HTML中有任何'frame'標籤,它們會在瀏覽器完成事件後產生不同的DcoumentComplete事件。我認爲'框架'被認爲是另一個HTML頁面,所以它會有自己'完整的'事件。

相關問題