Attendre chargement image

Résolu
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 - 11 mars 2008 à 20:05
PatetHT Messages postés 1 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 9 juin 2008 - 9 juin 2008 à 12:02
Bonjour !
    
   Je souhaiterais bloquer l'exécution de mon script pendant qu'une image se charge et le reprendre après, autrement dit attendre qu'une image soit chargée.
Vous allez me dire " à quoi cela-te sert-il ? ", à quoi je répondrais que je fabrique un quizz en DHTML, et que l'utilisateur doit cliquer sur une image parmi 4 à chaque question, or à la question suivante certaines images nt été remplacées et d'autres non et l'utilisateur risquerait de cliquer sur une image ancienne.
Je voudrais donc au début du script qui affiche les images mettre une variable à 0 et la mettre à 1 après le chargement complet, et quand l'utilisateur clique sur une image et que cette variable est à 0 lui dire d'attendre.
Biensûr cette fonction d'attente doit laisser l'image se charger et ne pas tout bloquer ce que ne fait pas ma fonction brute :

do {}
while (! document.getElementById("img1").complete)

si une sorte de Application.ProcessMessages de Delphi existait en JavaScript ce serait bien pour ce genre de boucle !...

Merci de m'aider.

Au revoir !

SISI231

5 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
12 mars 2008 à 09:50
Faire une boucle jusqu'à chargement complet de ton image n'est pas conseillé. Ton navigateur peut même t'avertir d'une redondance trop importante et te proposer de geler le JS (enfin sous FF, je n'ai jamais testé sous IE).

Je te conseilles de créer dynamiquement ton image à base de :

var monImageJS = new Image;
monImageJS.onload = function(){
document.getElementById('monImageDOM').src = monImageJS.src;
//Et la suite de ton JS à executer quand chargement fini...
}
monImageJS.src = 'url_de_ton_image';
2
ThomasDele Messages postés 21 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 13 octobre 2008
11 mars 2008 à 22:39
C'est une question qui me traverse l'esprit également en ce moment.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 mars 2008 à 06:49
Bonjour,

    tester si .complete dans une fonction [r]appelée par setTimeout

<hr />                Cordialement            Bul        
0
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 5
12 mars 2008 à 11:35
Merci, ça marche, bien que cela entraîne que je doive repenser une partie l'architecture du code.

SISI231
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PatetHT Messages postés 1 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 9 juin 2008
9 juin 2008 à 12:02
dfghfghfg
fg
hf
hf
h
f
hg
ghhhhhhhhhhhhhhhhh
0
Rejoignez-nous