Détection de la fin du chargement d'une page

Signaler
Messages postés
21
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
22 février 2006
-
Messages postés
23
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 mars 2009
-
bonjour à tous,

j'ai un petit problème.
Dans une page X, je cherche à savoir si une page Y a fini de se charger.

voici mon code pour attendre la fin du chargement :
while (top.window.opener.window.parent.body.left != "[object]") { continue; }
while (top.window.opener.window.parent.body.left.document != "[object]") { continue; }
while (top.window.opener.window.parent.body.left.document.thisForm != "[object]") { continue; }
while (top.window.opener.window.parent.body.left.document.thisForm.charge_page != "[object]") { continue; }

le problème est que, de temps en temps, j'ai une erreur sur le thisForm ou le charge_page disant que ce ne sont pas des objets ou qu'ils ont une valeur nulle ou une autre disant que la permission est refusée.

j'ai essayé avec .readyState mais j'ai la même erreur.
En fait, quand je lance ma fonction d'attente, la page peut ne pas encore avoir commencée à se charger.

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

function attend()
{
var ret=true;
try
{
var tmp=objet qui existera quand la page sera chargée
et qui n'existe pas tant qu'elle ne l'est pas;
}
catch(erreur)
{
setTimeout("attend();",1000);
ret=false;
}
if ( ret ) { suite des traitements .... }
}

ou "pas loin" ( pas testé )
Cordialement. Bul. 
Messages postés
21
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
22 février 2006

justement je cherche une autre solution que les settimeout car le temps de chargement varient d'un PC à l'autre.
Mais avec les .readyState mes erreurs devaient venir d'ailleurs , je pense que ça marche mais je continue de tester.

Merci quand même
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
c'est bien le but de ce setTimeOut :
ici, on relance tant que ce n'est pas
bon, donc "indépendant" du temps de chargement !
Il faut bien laisser le temps à la
page de se charger, et sans setTimeout...
@+
Messages postés
21
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
22 février 2006

mon "continue;" dans une boucle est l'équivalent d'un settimeout.

tu sais pas à quoi est du les erreurs "permission refusée" ?
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
3
Salut!

Pourquoi pas :

while (!top.window.opener.window.parent.body) { continue; }
top.window.opener.window.ancienOnload = top.window.opener.window.parent.body.onload;
top.window.opener.window.parent.body.onload=action;

function action()
{
alert("chargée");
if (top.window.opener.window.ancienOnload)
top.window.opener.window.ancienOnload();
}

pas testé

A+, Ghislain
Messages postés
23
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 mars 2009

>    var tmp=objet qui existera quand la page sera chargée et qui n'existe pas tant qu'elle ne l'est pas;

Bonsoir

Concretement on code ca comment ?

merci
Messages postés
23
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 mars 2009

car on ne peut pas prévoir quel objet sera chargé en dernier non ?