onreadystatechange - ロードのステータスが変化した時に発火する
投稿日:
JavaScriptの、イベントハンドラのonreadystatechange
は、ロードのステータスに変化があった時に発火して処理を実行します。
説明
イベントハンドラのonreadystatechange
は、ロードのステータスに変化があった時に発火します。ブラウザはDOMの解析(loading
)、画像などサブリソースの読み込み(interactive
)、そして完了(complete
)と、段階を経てHTMLドキュメントを表示します。表にすると下記の通りです。
項目 | 説明 |
---|---|
loading | DOMの解析中。 |
interactive | 画像などサブリソースの読み込み中。 |
complete | 全ての読み込みが完了。 |
これらの段階、すなわち、ロードのステータスの変化をキャッチして、そのタイミングで処理を実行してくれるのがこのonreadystatechangeというイベントハンドラです。ちなみに現在のステータスを知るにはdocument.readyState
を参照します。
サンプルコード
// 処理を定義
var action = function() {
// 処理内容
}
// イベントを設定 ( addEventListener )
document.addEventListener( "readystatechange", action ) ;
// イベントを削除
document.removeEventListener( "readystatechange", action ) ;
// イベントを設定 ( onreadystatechange )
document.onreadystatechange = function() {
// 処理内容
}
// イベントを削除
document.onreadystatechange = null ;
デモ
iframe内のドキュメントにonreadystatechangeイベントを設定しました。ロードのステータスはDOMの解析中(loading
)から始まり、サブリソースの読み込み中(interactive
)、読み込み完了(complete
)という順で変化するので、イベントは2回、発火します。
関連項目
- Location - ブラウザロケーションのオブジェクト。
- Location.assign() - コンテンツをロードして表示する。
- Location.reload() - ドキュメントをリロードする。
- Location.replace() - 現在のURLを置換する。
外部リンク
- HTML Living Standard - WHATWGによる仕様書。