11548 sujets

JavaScript, DOM et API Web HTML5

Hello!
bon, non, j'vais pas parler chiffons :->
C'est plus que ce très cher navigateur (IE, donc) est pas fichu de piger ce petit code:

newImg = document.createElement('img');
newImg.src = imgs.getElementsByTagName('src')[0].childNodes[0].nodeValue;
newImg.title = imgs.getElementsByTagName('descr')[0].childNodes[0].nodeValue;
div.appendChild(newImg);

Bon, les datas viennent d'un XML (vivi, j'arrive à le lire maintenant :->), et donc, il plante au niveau du newImg.title=....
le ... étant une simple string.... il me sort une erreur révélatrice, à laquelle je pige tout: "Objet requis"...
Je reprends mon super-éditeur, et fais la manip:
newImg.title = new String(...);
et nan.... il est pas d'acc, le bougre....

Quelqu'un aurait une idée?

Merci d'avance

++

Nix
Modérateur
Re,

Si j'en juge par ton sujet précédent, tu cherches à insérer du contenu, ici une image, à l'aide d'innerHTML...

Dans ce cas, plutôt que de créer celle-ci via DOM, tu peux faire:
document.getElementById('content').innerHTML = '<img src="' + imgs.getElementsByTagName('src')[0].firstChild.nodeValue + '" title="' + imgs.getElementsByTagName('title')[0].firstChild.nodeValue + '" etc...
PS: Tu ferais bien de te mettre à JSON. Smiley cligne
Modifié par koala64 (18 Nov 2006 - 20:57)
Hm... le soucis, c'est que la description devrait pas venir en title... là, j'avais testé avec title, mais j'ai aussi tenté createTextNode, createElement('<p>') etc... bref, des _objets_ mais que ce @##@|@#" de fichu navigateur pourri pige pas manifestement :'(

Et, pour tout t'avouer, j'ai pas envie de passer par des lib existantes... j'ai envie de comprendre en profondeur, et de faire mes propres expériences... je me suis mis à AJAX il y a genre une semaine, j'ai commencé petit, mais là, j'ai envie de plus :-> et comme je suis un codeur qui adore coder.... pas envie de prendre du tout fait Smiley cligne

Bref... quelqu'un aurait une solution pour faire piger à IE que je lui file un objet? ou j'dois lui acheter un v Smiley censure o et le lui f[longue censure ^^']l ? ermmm... je m'emporte ^^'

'fin... ^^ j'voudrais lui faire digérer une string par les DOM, quoi.. c'est fait pour...

++

Nix
Modérateur
Euh... s'il te plait, un petit effort sur la rédaction de tes réponses est de mise... Pense au carnage que tu fais pour ceux qui parcourt ces lignes via un lecteur d'écran. Smiley cligne

Pour créer une image via DOM, tu peux faire ainsi :
<script type="text/javascript">//<![CDATA[

function createImg(src, width, height, alt)
{
	var oImg = document.createElement('img');
	oImg.setAttribute('src', src);
	oImg.setAttribute('width', width);
	oImg.setAttribute('height', height);
	oImg.setAttribute('alt', alt);
	var oBody = document.getElementsByTagName('body')[0];
	oBody.appendChild(oImg);
}
window.onload = function() { createImg('image.png', '200', '200', 'mon image'); };

//]]></script>
IE comprend lui aussi... Tu n'as qu'à remplacer les valeurs d'arguments que tu affectes par les valeurs reçues de ton xml...

Quand à JSON, on s'est mal compris... Smiley lol
Il s'agit d'une alternative à XML qui simplifie grandement tes travaux en AJAX... C'est un langage très facile d'accès puisque fondé sur javascript.

voir ceci, celà ou encore par
Modifié par koala64 (18 Nov 2006 - 21:22)
Argg... tu n'as pas compris ma question Smiley ohwell
L'image est bien créée, c'est la partie texte qui plante complet sous IE :]
Pour JSON, vais aller jeter un oeil, vrai que si c'est une alternative valable à xml...

Rédaction? heu, j'ai pas suivi... j'ai fait des fautes? :S désolé

++

Nix
Modérateur
La deuxième description dans ton code xml n'existe pas (tout du moins dans le code que tu as laissé sur le sujet précédent). Smiley cligne

Pour la rédaction, je te parle là des :
a écrit :
@##@|@#"
(...)
un v censure o et le lui f[longue censure ^^']l ? ermmm... je m'emporte ^^'

'fin... ^^
... à éviter ! Smiley smile
Modifié par koala64 (18 Nov 2006 - 21:31)
Okay. sorry :s
disons que la question est pas trop de savoir si les datas existent ou pas (elles existent, y a pas de soucis), mais de savoir comment faire avaler une chaîne de caractère à IE. Si je mets "ma chaine de caractère en dure", ça passe. Par contre, si ma string vient d'une variable (en l'occurrence du parsing de mon xml), IE refuse, firefox passe sans faire le moindre warning ni rien... c'est frustrant Smiley decu

bref.. reformulation sans équivoque de la question:
comment faire passer:

descr = document.createTextNode(imgs.getElementsByTagName('descr')[0].childNodes[0].nodeValue);

sous IE ?

Mercii et désolé pour le tirage en longueur...

++
Nix
bonsoir ..

Lors de l'analyse d'un document Xml des "espaces blanc" sont insérer entre
chaque noeud .
losque tu appeles le premier noeud (childNodes(0) ) tu fais référence à un
"whitespace" (valeur #xa) ...
ce sont des espaces mais ils ont valeurs de noeud...

essaie dans ton cas d'appeller le deuxiéme enfant de ta liste (childNodes(1))

++

edit : En fouillant mes docs , j'ai trouvé ceci concernant les manip d'images
et la gestion d'événement ( ce n'est pas exactement ce que tu recherches mais si cela peut t'aider) :

quirkmode.org
Modifié par kzone (20 Nov 2006 - 10:59)