[Javascript] une fonction qui déconne

Fermé
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 22 janv. 2010 à 10:41
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 22 janv. 2010 à 11:21
Salut à tous !

Alors voilà, j'ai un select avec une liste de noms d'images. Quand on choisi un nom, un aperçu de l'image s'affiche.
Donc j'ai fais ma petite fonction, ça marche bien, et j'ai voulu l'améliorer : si la largeur de l'image dépasse les 500 px, on redimensionne à 500.

Voici le début de ma fonction :
function dynprev(adr_img){
	var oImg = new Image();
	oImg.src = adr_img;
	var w;
	w = oImg.width;
	if (w>500){w = 500;}

[...]


Le soucis, c'est que quand je sélectionne l'image A une 1ere fois, la variable oImg.width vaut 0.
Je sélectionne l'image B, oImg.width est encore à 0.
Je sélectionne une nouvelle fois l'image A, oImg.width vaut le width de l'image (c'est le résultat attendu).
Je sélectionne B, oImg.width est ok.
Je resélectionne A, ben... ça dépend des fois, oImg.width peut valoir 0 ou la largeur de l'image...

Ce que je comprends pas, c'est que oImg.src contient bien l'adresse de l'image, dans tous les cas.
Quelqu'un a une idée du pourquoi du comment ?
A voir également:

1 réponse

Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
22 janv. 2010 à 11:21
Pour le moment je contourne le problème en mettant :

if (w==0){w = 100;}


Mais franchement j'aimerais pas laisser comme ça, un coup sur deux l'image fait 100px, puis sa taille normale (ou 500px si elle est trop grande)... Pour parler vulgairement, il pue mon code.

Quelqu'un saurait d'où vient mon problème de base ?
0