72

私はJavascriptスクリプトを書いています。このスクリプトは、おそらく非同期でロードされます (AMD 形式)。

window.loadこのスクリプトでは、イベントが発生するまで重要なことは何も行いません。そのため、ウィンドウの「ロード」イベントをリッスンします。

しかし、スクリプトが window.load イベントの後にロードされた場合...どうすれば、window.loadすでに起動されていることを知ることができますか?

そしてもちろん、他のスクリプトに何かを追加したくありません (それらはすべて非同期でロードされますが、問題は同じです) :)

編集 :

Javascript がまったく含まれていない HTML ドキュメントを想像してみてください。

誰かがこのドキュメントにタグを挿入すると、このスクリプト タグが私の Javascript ファイルをロードします。

これにより、スクリプトが実行されます。

このスクリプトは、window.load が既に起動されているかどうかをどのように知ることができますか?

私の前のHTMLドキュメントにはjQueryもスクリプトもありません。

知ることは可能ですか ??

物件を見つけましたwindow.document.readystate。このプロパティは、ウィンドウの「ロード」ではなく、ドキュメントの「準備完了」イベント用です。ウィンドウの「ロード」イベントに似たものはありますか?

4

7 に答える 7

0

jQuery を使用したくない場合、使用するロジックは次のとおりです。

if( !document.body )
    setTimeout( checkAgain, 1 );

したがって、windows loaded イベントとドキュメントの body プロパティが使用可能かどうかを確認する間に、DOM の準備ができているかどうかを確認できます。

于 2012-11-13T16:47:01.570 に答える
-4

window.load のオーバーライドはどうですか?

window._load = window.load;
window.load = function(){
  window.loaded = true;
  window._load();
}

次に、

if (window.loaded != undefined && window.loaded == true){
    //do stuff
}
于 2012-11-13T16:31:51.160 に答える