11548 sujets

JavaScript, DOM et API Web HTML5

Salut !

Hier sur le tchat de Alsacréation j'ai posé une question à propos d'un problème entre IE et FF. Je souhaitais en fait récupérer la valeur src="" d'une image, en faisant :

document.getElementById('id_de_mon_image').src

Sous FF, aucun problème, j'obtenais exactement ce que je voulais, c'est à dire le chemin relatif.
Mais sous IE, j'obtenais file:///D:/Siteperso/images/miniatures/cirque.jpg

On m'a donc conseillé d'utiliser getAttribute("src") ! Ce qui a parfaitement fonctionné pouré récupérer le chemin relatif !

Mais je suis confronté à un autre problème. Avec le code suivant, je suis censé récupérer ma source relative que j'ai récupéré pour lui ajouter images/creations :


function afficher(plop) {
	var diapo = document.getElementById('diapo')
	var zoom = diapo.src 
	zoom = 'images/creations/'+plop.getAttribute("src").substring(28);
}


A nouveau, aucun problème sous FF. Mais sous IE, la source devient alors :

file:///D:/Siteperso/images/creations//images/creations/miniatures/cirque.jpg

A l'aide Smiley decu
Y'a de quoi se taper sur les doigts Smiley smile
Bien sûr, c'est ça... tu as raison !
Merci !

Edit :
Heee non en fait ça ne fonctionne pas dans ce sens là, j'avais déjà essayé :S

Edit 2 :
Je viens de trouver au hasard qu'un setAttribute existait mais ça n'a pas l'air de fonctionner partout

Edit 3 :
Appliqué à ma source, ça donne :


function afficher(plop) {
	var val = 'images/creations/'+plop.getAttribute("src").substring(28);
	document.getElementById('diapo').setAttribute("src", val)
	document.getElementById('commentaire').innerHTML=plop.title;
}


Ce qui fonctionne très bien sur FF mais toujours le même problème sous IE
Modifié par Angy (03 Jun 2009 - 12:47)
mais attends là, tu veux fixer le src de diapo ? si oui ton histoire de variable zoom ne va pas marcher.
et pour le coup
diapo.src = 'images/balbla';

devrait marcher comme il faut.
en fait, j'ai le fichier :

Portfolio.html dans lequel est le code de mon diaporama

Puis le dossier images/creations où sont mes créations
Et le dossier images/creations/miniatures où sont les miniatures de ces créations et qui portent les mêmes noms.

Mon code vise à récupérer l'emplacement de l'image des miniatures pour l'afficher en grand.
Donc en remplaçant l'emplacement images/creations/miniatures/exemple.jpg par
images/creations/exemple.jpg
haaa, bah c'est plus simple d'un coup
diapo.src = plop.getAttribute("src").replace("miniatures/",""); 
// ou même plop.src du coup…

vu que relatif ou absolu, on enlève toujours "miniatures/" et c'est tout Smiley lol
Modifié par nod (03 Jun 2009 - 13:22)
Ca marche !!!!!! Merci merci merci merci merci !

Dommage que ça ne règle pas le problème du getAttribute sous IE pour d'autres personnes. M'enfin je suis content Smiley smile
getAttribute / setAttribute sont buggés dans IE6-7 y'a rien à faire Smiley decu IE8 corrige le tir, heureusement.