J'essaie de définir la largeur & propriété height d'un élément d'image que j'ai créé en javascript. Dans FF, Opera & Chrome, il définit la largeur & hauteur correctement. Cependant, dans IE 6 & 7 (N'a pas essayé 8) la largeur & hauteur reste 0 jusqu'à ce que l'image est téléchargée. La raison pour laquelle j'ai besoin de cela est que je peux positionner chaque image dans les rangées en fonction de sa taille actuelle.IE image width & height = 0 avant le téléchargement de l'image
S'il n'est pas possible de définir la largeur & propriétés de hauteur dans IE Je pense que je vais juste devoir créer ma propre propriété personnalisée et le définir là.
Voici le code de base que j'utilise pour créer & injecter l'élément.
var img = document.createElement('img');
var wrap = document.createElement('div');
document.body.appendChild(wrap);
wrap.appendChild(img);
img.src = 'blah.jpg';
img.width = '100';
img.height = '100';
img.style.display = 'none';
// IE: width: 0 | height: 0
// FF: width: 100 | height: 100
alert('width: ' + img.width + ' | height: ' + img.height);
EDIT:
J'ai essayé de placer img.style.visibility = 'caché' au lieu de img.style.display = 'none'; mais ça ne fait pas de différence.
EDIT
Je trouve la question. Le problème réel était une combinaison de la solution Aziz et quelque chose que j'ai omis dans l'exemple original. Il semble que dans IE si vous ajoutez l'élément dans un autre élément avant d'affecter une largeur & hauteur IE l'ignore simplement.
Comment créez-vous l'image? À quoi ressemble le balisage? http://www.catb.org/~esr/faqs/smart-questions.html –
J'ai ajouté le squelette du code que j'utilise. – Alex
Je ne peux pas répliquer sur IE6/IE7 avec le code que vous avez donné. J'ai même essayé de grandes images pour s'assurer que l'alerte se produise avant que l'image ne se charge. L'alerte montre la largeur/hauteur correcte pour moi. – jimyi