11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

une erreur sur le script ci-dessous de pré-chargement d'image n'apparait que sur IE : "membre introuvable" à la ligne :

prechEl80.setAttributeNode(dis);

le script en entier :

for(var i=0;i<t_photo.length;i++) {
	photo='img/'+t_photo[i];

	var prechEl80=document.createElement('img');
	
	var dis=document.createAttribute('style');
	var source=document.createAttribute('src');
	source.nodeValue=photo+'80.gif';
	dis.nodeValue='display:none';

	prechEl80.setAttributeNode(dis);
	prechEl80.setAttributeNode(source);
}	

Par contre le src fonctionne normalement :

for(var i=0;i<t_photo.length;i++) {
	photo='img/'+t_photo[i];

	var prechEl80=document.createElement('img');
	
	var source=document.createAttribute('src');
	source.nodeValue=photo+'80.gif';

	prechEl80.setAttributeNode(source);
}	


Je ne comprend pas du tout le problème...

Si quelqu'un a une idée,
Merci d'avance
[/i][/i]
Modifié par damjal (13 Oct 2006 - 15:38)
T'es pas obligé de t'embêter avec des createAttribute, le DOM HTML est gentil Smiley smile :
var prechEl80=document.createElement('img');
prechEl80.src= photo+'80.gif';
prechEl80.style = 'display:none';
Oh be oui alors, c'est bien plus gentil comme ça, merci !!

Le problème c'est que j'ai toujours une erreur sur IE (membre introuvable) ici :

prechEl80.style='display:none';




for(var i=0;i<t_photo.length;i++) {
	photo='img/'+t_photo[i];

	var prechEl80=document.createElement('img');
        prechEl80.style='display:none';
	prechEl80.src=photo+'80.gif';
}


???[/i]
J'ai maintenant une erreur sous firefox sur la même ligne style :

a écrit :
Erreur : setting a property that has only a getter


une idée ?
Modifié par damjal (13 Oct 2006 - 13:57)
Bon, j'ai résolu mon problème en affichant les images à précharger dans un div déjà caché...
Mais le problème d'affecter un style à un élément en cours de création n'est pas résolu...
Comme dit, tu peux pas accéder directement à la propriété style. Faut accéder à des sous-propriétés :
pouet.style.display = 'none';
pouet.style.left = '15px';
pouet.style.overflow = 'hidden';

etc.
Note que les propriétés genre background-image ont une syntaxe légèrement différente :
pouet.style.backgroundImage = 'url(...');

Sinon les autres sont pareilles qu'en CSS
Modifié par FlorentG (13 Oct 2006 - 16:32)