Problème de calcul de dimension d'image sur onLoad

mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010 - 8 juin 2007 à 17:59
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 - 8 juin 2007 à 23:30
Bonjour à tous,

Je bloque sur la détermination des dimensions d'une image chargée, et ça fait un bout de temps que ça dure...
Voici en gros ce que j'ai:

var
ImgS new Image(); ImgS.src Pics[Index1];

ImgS.onLoad = CalculDim(ImgS);

function CalculDim(t) {

alert(t.width);

}

Ou bien un alert(ImgS.width);

Je suis à 0 au premier passage, puis j'ai enfin la largeur au second coup(code lancé sur appui bouton par ex).

Le onLoad est normalement déclenché quand l'image est totalement chargée, d'où mon incompréhension.
Tout se passe comme si la fonction CalculDim était lancée avant même le chargement total, puis quand je relance le tout ça devient ok car l'image est enfin en cache.
Pouvez-vous m'éclairer ?
Merci d'avance.

4 réponses

yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
8 juin 2007 à 21:53
Salut
au lieu de "ImgS.onLoad = CalculDim(ImgS);" essai avec

if(ImgS.complete == true){
CalculDim(ImgS)
}
0
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
8 juin 2007 à 22:12
Ton code marche très bien, sinon si tu veux un autre essai avec celui-ci

ImgS.onComplete = CalculDim(ImgS);

(Le premier code que j'ai donné n'as marché que sous firefox)
0
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
8 juin 2007 à 22:45
Merci Yousfane.
Je pense en effet que le premier code est censé marcher. Mais ce n'est pas le cas avec IE7 et FF2.

Par contre je découvre le onComplete.

J'ai entre temps trouvé une alternative en bouclant sur un test de non pas de complete mais de la largeur non nulle.
Pas hyper glorieux mais efficace.

C'était justement pour éviter ça que j'avais cru trouver mon bonheur avec le onLoad. C'est pourtout tout bête comme code, et en plus la fonction est bien lancée sur l'évènement, mais j'ai toujours une dimension nulle au premier passage.
J'ai lu des messages par ailleurs de personnes se plaignant aussi des complete et onload. 
Pas essayé sous IE6, mais peut-on imaginer un bug sous les navigateurs récents IE7 et FF2. C'est un peu la solution de facilité de dire ça mais le code est tellement simple que je ne vois vraiment pas ce qui peut clocher...

   
0
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
8 juin 2007 à 23:30
Salut
Le oncomplete ne marche qu'avec une image
0
Rejoignez-nous