Petit problème technique qui revient régulièrement. Ce problème n’est pas toujours facile à détecter, car il peut être aléatoire (non reproductible de façon systématique).
Description du problème : j’ai une page HTML comportant 2 ou plusieurs frames. Une fonction javascript sur l’un des frames doit faire appel à un élément de la deuxième frame. Si le temps de chargement de la deuxième frame est assez long et qu’elle n’est donc pas chargée, il est possible que la fonction ne trouve pas l’élément recherché. Il faut donc attendre le chargement de cette deuxième frame.
Pour cela, la solution consiste à faire une boucle utilisant la fonction setTimeout (pour ne pas monopoliser le CPU avec une boucle d’attente).
Voici la façon dont je l’implémente :
var cpt;
function funcky() {
clearTimeout(funcky);
// la 2ème frame s'appelle fra2
if(!top.fra2.document) {
if (cpt) {
if (cpt++ > 20) {
alert("Chargement de la page trop long...");
return;
}
} else cpt=1;
setTimeout(funcky,200);
return;
}
// ...
// Ecrire mon code ici
// ...
}
Laisser un commentaire