1

これはあちこちで答えられていません。これらの質問は言葉遣いが不十分であり、答えはすべて「DOMReady を使用する」という行に沿っています。

ページの読み込みが完了した場合にのみコードが実行されるようにしたいと考えています。HTML ファイル自体を変更することはできませんが、可能であれば、次のようなことを行います。

<!DOCTYPE html>
<html>
  <head>
    <script>window.loaded=false;</script>
  </head>
  <body onload="window.loaded=true;">
    <!-- ... -->
  </body>
</html>

次に、私のコードで:

if (window.loaded) { run(); }
else { document.addEventListener("load", run); }

そして、それはまさに私が望むものを達成するでしょう. 残念ながら、HTML を変更することはできません。つまり、ドキュメントが読み込まれたかどうか( DOM の準備ができているかどうかではなく) を JS コードのみから判断する方法を探しています。

かなり調べてみましたが、これまでのところ、DOMReady を中心に展開しているものしか見つかりませんでした。誰も本当にこれを探したことがありませんか?

4

2 に答える 2

5

Dr.Molleが指摘しているように、document.readyStateあなたが求めているプロパティが含まれています:

document . readyState

Document の読み込み中は「loading」を返し、解析が終了してもまだサブリソースを読み込み中の場合は「interactive」を返し、読み込みが完了すると「complete」を返します。

このreadystatechange値が変更されると、Document オブジェクトでイベントが発生します。

イベントの発生と readyState の変更の順​​序は、HTML5 仕様の最後の解析セクションで定義されています。要約すれば:

  1. ドキュメントは、解析が完了するとすぐにreadyState設定されます。"interactive"
  2. DOMContentReadyイベントはほぼ即時に発生します (どのリソースをロードする必要があるかが決定された後) 。
  3. それらのリソースがロードされます。
  4. ドキュメントreadyStateは「完了」に設定され、loadイベントが発生します。
于 2012-05-26T08:09:21.703 に答える
3

ウィンドウのonload-eventは、DOMとすべてのリソース(スクリプト、画像、スタイルシートなど)の読み込みが完了すると発生します。

window.onload=function()
{
  //run code 
}
于 2012-05-26T07:55:28.687 に答える