16

ウィンドウが読み込まれたかどうかを確認する必要があります。

呼び出し時に基づいて、これcheckLoadedを返すtrueか、これを示す関数を作成したいと思います。false

<html>
<head>
  function checkLoaded(){
    //alert true if window is loaded or alert false
  }
</head>
<body onload="checkLoaded()"> <!-- This should alert true -->
   Loding window.
   <script>
       checkLoaded();// this should alert false;
   </script>
</body>
</html>

ウィンドウの読み込み時に設定したグローバル変数を使用したくありません。

windowオブジェクトのステータス、おそらくプロパティを確認する方法はありますか?

jQuery やその他の外部ライブラリを使用したくありません。

4

4 に答える 4

44

プロパティを使用してdocument.readyState、イベントをリッスンせずにドキュメントが読み込まれたかどうかを確認できます。"complete"ドキュメントとすべてのサブリソースがロードされているかどうかを確認するように設定されます。(これはloadイベントに対応します。)

function checkLoaded() {
  return document.readyState === "complete";
}

サブリソースを気にせずに、ドキュメントが読み込まれたかどうかのみを確認したい場合は、プロパティが であるかどうかも確認できます"interactive"

function checkLoaded() {
  return document.readyState === "complete" || document.readyState === "interactive";
}

これは現在のブラウザーで機能するはずですが、すべてのブラウザーの古いバージョンではサポートされていません。

于 2012-07-18T14:00:16.433 に答える
1

利用可能なイベントは2つあります。

addListener(document, "DOMContentLoaded", function(){});  //Dom parsing is finished
addListener(window, "load", function(){}); //loading of all external stuff is done

ここでそれらの違いを見ることができます

于 2012-07-17T18:01:55.983 に答える
0

これは、ウィンドウがロードされたときにアラートを出します。

(function(w) {
    //private variable
    var loaded = false;
    w.onload = function() {
        loaded = true;
    };

    w.checkLoaded = function() {
        alert(loaded);
    };
})(window);

checkLoaded()これで、アプリのどの部分からでも呼び出すことができ、trueまたはfalseが返されます。

于 2012-07-17T17:57:56.483 に答える
0

たぶん、単に次のようなものです:

<html>
<script>
  var loaded = false;
  function checkLoaded(){
     alert(window.loaded);
  }
</script>
<body onload="window.loaded = true; checkLoaded()">
   Loading window.
   <script>
       checkLoaded();
   </script>
</body>
</html>
于 2012-07-17T18:55:56.460 に答える