Bonjour,
Je souhaiterais déterminer la hauteur et largeur d'un nombre inconnu d'images grâce à javascript, mais je rencontre certains problèmes.
Pour tenter de réaliser ce script, j'ai procédé comme suit :
Ce code marche très bien quand il n'y a qu'un seul url dans "tab", mais ça bug de plus en plus à mesure que le nombre d'url augmente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for (var j = 0; j < tab.length; j++) //où tab est un tableau d'un nombre inconnu d'images url { var picture = new Image(); picture.addEventListener("load", function() { alert(picture.width + "*" + picture.height); }, false); picture.src = tab[j]; }
Pour moi ça vient du fait que la boucle s'exécute sans attendre la fin du chargement de l'image précédente ce qui modifie la variable picture en cours d'utilisation. J'ai bien pensé à transformer la variable picture en un tableau de la manière suivante :
Mais, visiblement, on ne peut pas instancier d'objet image dans un tableau (le script ne marche plus du tout). Peut être faudrait il réaliser une variable qui s'incrémente dynamiquement (picture1, picture2, ...), mais je ne sais pas si c'est possible et il doit certainement exister une méthode plus "propre".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 var picture = new Array(); for (var j = 0; j < tab.length; j++) { picture[j] = new Image(); picture[j].addEventListener("load", function() { alert(picture[j].width + "*" + picture[j].height); }, false); picture[j].src = tab[j]; }
Pourriez vous m'aidez à corriger ce problème?
Merci
Partager