最近、JavaScript コードに問題が発生していたのですが、コードの一部を取り出して$(document).ready()
に配置することで$(window).load()
問題が解決しました。
window.load
が の直後に起動されることは理解できましたが、 の直後、つまり のdocument.ready
後に準備が完了しないのはなぜですか?document.ready
window.load()
ベストアンサー1
load
画像を含むすべてのアセットの読み込みが完了したときに呼び出されます。DOMready
が操作の準備ができたときに起動されます。
MDCより、ウィンドウの読み込み:
ロード イベントは、ドキュメントの読み込みプロセスの最後に発生します。この時点で、ドキュメント内のすべてのオブジェクトが DOM 内にあり、すべての画像とサブフレームの読み込みが完了しています。
jQuery APIドキュメントより、.ready( ハンドラ ):
JavaScript では、ページがレンダリングされるときにコードを実行するための load イベントが提供されますが、このイベントは、画像などのすべてのアセットが完全に受信されるまでトリガーされません。ほとんどの場合、スクリプトは、DOM 階層が完全に構築されるとすぐに実行できます。.ready() に渡されるハンドラーは、DOM の準備ができたら実行されることが保証されているため、通常、他のすべてのイベント ハンドラーをアタッチして他の jQuery コードを実行するには、ここが最適です。CSS スタイル プロパティの値に依存するスクリプトを使用する場合は、スクリプトを参照する前に、外部スタイルシートを参照するか、スタイル要素を埋め込むことが重要です。