が発射イベントがないとき、任意のDOM要素など<div>
が準備完了になります。画像には、画像データがロードされてレンダリングされたときに、他のいくつかの特別な種類の要素にイベントが発生したときに通知する独自のload
イベントがあります。しかし、通常のDOM要素にはそのようなイベントはありません。
任意のDOM要素の準備が整うとすぐにjavascriptコードを実行するには、DOM要素の直後にインラインスクリプトで関数呼び出しを配置するしかありません。その時点でDOM要素は準備ができていますが、DOMの残りの部分はまだ準備ができていない可能性があります。それ以外の場合は、ドキュメントをドキュメントの最後に配置するか、ドキュメント全体の準備ができたらスクリプトを起動することができます。ここで
は、jQueryの形で表現既存のロードイベント(これらはすべて、あまりにも平野JSで行うことができます)です:jQueryので
// when a particular image has finished loading the image data
$("#myImage").load(fn);
// when all elements in the document are loaded and ready for manipulation
$(document).ready(fn);
// when the DOM and all dynamically loaded resources such as images are ready
$(window).load(fn);
、あなたはまた、コンテンツを動的に読み込むことができますし、そのコンテンツがされたときに通知されますこのようメソッドを使用してロード:
$("#result").load("ajax/test.html", function() {
alert("Load was performed.");
});
内部的には、これは単にデータをフェッチするためにAJAX呼び出しを行い、そのデータは、AJAXによって取得し、文書に挿入された後にコールバックを呼び出します。これはネイティブイベントではありません。
あなたが動的にDOMへの要素をロードしているいくつかのコードを持っていて、それらのDOM要素が存在する場合を知りたい場合は、その後、彼らは準備ができているときを知るための最良の方法は、追加のコードを持つことですDOMへのそれらの準備が整ったら、何かイベントを作成します。これは、要素が現在DOM内にあるかどうかを調べようとするバッテリーの無駄なポーリング作業を防ぎます。
DOM MutationObserverを使用して、特定のタイプの変更がいつDOMに行われたかを確認することもできます。
+1わかりやすい説明のために –
DOMの変更を見るためのDOM MutationObserversに関する情報を追加してください。 – jfriend00