Dans mon code JavaScript Je suis d'abord appeler une fonction de mise à jour d'une image:Pourquoi mon message d'alerte JavaScript est-il affiché avant la mise à jour d'une image à l'aide de document.getElementByID?
document.getElementByID("i1").src = newImage;
puis quelques déclarations plus tard, la fonction d'alerte() est appelée à afficher un message:
alert("image updated!");
Cependant, quand je cours ce code, ce qui se passe réellement est que la boîte d'alerte est surgie avant l'image est mise à jour. Lorsque je clique sur le bouton "OK" dans la boîte de dialogue pour mettre la boîte d'alerte, l'image est mise à jour.
Pourquoi l'ordre de ces événements n'est-il pas conservé? Et y a-t-il une sorte de fonction de synchronisation que je peux appeler pour attendre la fin de la mise à jour de l'image avant l'affichage de la boîte de dialogue d'alerte? Je suis prêt à restructurer le code d'une certaine manière (c'est-à-dire en utilisant autre chose que la fonction alert()), mais je préférerais une solution qui permette au code existant de fonctionner comme prévu.
Cela ressemble à une direction viable (merci!). J'utilise actuellement le Javascript de vanilla - offre-t-il un moyen de placer un rappel? –
Cela fonctionnera dans la plupart des navigateurs: img.onload = function() {alert ('image updated!'); } –
N'oubliez pas de mettre * avant * la ligne "img.src = newImage". Le gestionnaire d'événements doit être défini en premier. En outre, si vous utilisez cela à la place de l'un des cadres, assurez-vous de tester dans tous les navigateurs qui vous intéressent (y compris les navigateurs mobiles). Le gestionnaire img.onload n'est pas un standard W3C, il est donc possible que certains navigateurs ne le respectent pas. –