2012-02-18 10 views
4

私は、HTMLベースのユーザーインターフェイスであるWindowsフォームアプリケーションに取り組んでいます。 ウェブページが完全にロードされたときを知る必要があります。 私は、DocumentCompleted、IsBusy、ReadyStateのような多くのWebブラウザイベントをテストしましたが、それらのどれも私が期待したものに答えませんでした。WebページがWebブラウザに完全に読み込まれているかどうかを調べる方法は?

+0

あなたは何を期待していますか? – Softnux

+0

HTMLページが完全に読み込まれたときにイベントが必要です。 –

+0

あなたはonloadイベントを試しましたか?何が起こった? –

答えて

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 */ 
     } 
}); 
} 

あなたが興味を持っている場合は、ここでは他のブラウザ依存の解決策を見つけることができます - あなたはDocumentCompleteイベントを使用しますが、必要があります - チェック http://dean.edwards.name/weblog/2006/06/again/

+0

私のproject.isでjQueryライブラリを使用することはできません。 –

+0

私が言ったように、jQueryを使用できないなら、jQueryのようなライブラリに依存しないブラウザ依存のソリューションの1つを使用する必要があります。 – sngregory

0

Chamika Sandamalは正しいです「送信者」オブジェクト。まさに最後の「完全な」イベントは、画像やテキストなどからではなく、ブラウザのオブジェクト自体から来ています。ページ上のすべての要素がDocumentComeleteイベントを発生させると、最後のイベントはブラウザ自体から発生します。 '送信者'をブラウザオブジェクトにキャストできれば、ブラウザのロード完了イベントです。 HTMLに「フレーム」タグがある場合は、ブラウザのCompleteイベントの後に異なるDcoumentCompleteイベントが発生することに注意してください。私は 'フレーム'は別のHTMLページと見なされるので、それ自体が完全なイベントを持つと考えます。

関連する問題