Je dois savoir si la fenêtre a été chargée ou non.
Je veux créer une fonction checkLoaded
qui renverra true
ou false
pour indiquer cela, en fonction de quand je l'appelle.
<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>
Je ne veux pas utiliser une variable globale que j'ai configurée lorsque la fenêtre se charge.
Est-ce que je peux vérifier l'état de l'objet de la window
, peut-être une propriété?
Je ne veux pas utiliser jQuery ou toute autre bibliothèque externe.
Vous pouvez utiliser la propriété document.readyState
pour vérifier si le document a été chargé sans avoir écouté d'événements. Il sera configuré pour "complete"
vérifier "complete"
si le document et toutes les sous-ressources sont chargées. (Ceci correspond à l'événement de load
).
function checkLoaded() { return document.readyState === "complete"; }
Si vous souhaitez seulement vérifier si le document a été chargé, sans vous soucier des sous-sources, vous pouvez également vérifier si la propriété est "interactive"
.
function checkLoaded() { return document.readyState === "complete" || document.readyState === "interactive"; }
Cela devrait fonctionner dans les navigateurs actuels, mais n'est pas pris en charge dans les anciennes versions de tous les navigateurs.
Vous avez 2 événements disponibles:
addListener(document, "DOMContentLoaded", function(){}); //Dom parsing is finished addListener(window, "load", function(){}); //loading of all external stuff is done
Vous pouvez voir une différence chez ceux ici
Peut-être simplement quelque chose comme ça:
<html> <script> var loaded = false; function checkLoaded(){ alert(window.loaded); } </script> <body onload="window.loaded = true; checkLoaded()"> Loading window. <script> checkLoaded(); </script> </body> </html>
Cela va alerter lorsque la fenêtre est chargée:
(function(w) { //private variable var loaded = false; w.onload = function() { loaded = true; }; w.checkLoaded = function() { alert(loaded); }; })(window);
Vous pouvez maintenant appeler checkLoaded()
partir de n'importe quelle partie de votre application et elle renverra true ou false.
Est-ce que cela aide ?
<script> var loaded = false; function checkLoaded(){ alert(loaded); //alert true if window is loaded or alert false } </script> <body onload="loaded = true;checkLoaded();"> <!-- This should alert true --> Loding window. <script> checkLoaded();// this should alert false; </script> </body>