11548 sujets

JavaScript, DOM et API Web HTML5

Salut,

Je suis face à un problème assez embetant car je ne sais absolument pas d'ou il vient ni pourquoi il ne se produit que sous Opera ... Je vous donne donc le lien vers une demo de ce site en espérant qu'une âme charitable y jette un coup d'oeil ... Smiley smile . http://hostftpthor.free.fr/meteo.ajax/
Si vous tentez avec FF ou IE7 de cliquez sur une date au hasard, une image s'affiche et si vous recliquez sur cette même date elle est rechargée et s'affiche. Le hic c'est qu'avec Opera ça laisse tout simplement mon icone de chargement sans rien afficher. Je ne vois donc pas d'où vient le problème. Si vous avez une idée dites le moi que je vous affiche la partie du code en question (au lieu d'afficher un morceau indigeste) ... Merci
Je suis sous Opera 9.10 et ça laisse l'image de chargement lorsque je reclique sur la date de la carte affichée ! Smiley decu Smiley biggol
Ouvre la console d'erreurs !
Outils >> Avancé >> Console d'erreurs (au cas ou tu connais pas Smiley smile )

Tu peux filter pour n'avoir que les erreurs Javasript.

C'est perso la meilleur console de d'erreurs que j'ai trouvé pour développer. Dans la prochaine version d'Opera (la 9.10 je crois), il y aura une console de développeur.

Ca promet !
Modifié par MoOx (06 Mar 2007 - 22:02)
Je ne connaissez pas car j'utilise Firefox ... Merci, néanmoins mon problème reste entier car la console n'affiche absolument aucune erreur (JavaScript en tout cas) Smiley confus
Test la console du développeur alors !

Outils >> Avancé >> Developeur console (à l'état Beta dans la version 9.10 d'Opera).
Tu pourra ainsi voir l'état de toutes tes variables javascript (car je suppose qu'il doit y en avoir un paquet)...
Oui je me doutais bien qu'il y aurait ce genre de console dans Opera comme tu me l'a dit au #06 mais je suis désolé j'ai déja cherché et il n'y a pas ce genre de console.
Deuxièmement mon histoire ne génère aucune erreur et puisque cela marche sous FF et IE7, je doute fort que ce soit les variables et leurs valeurs qui soit en jeu ...
Modérateur
Salut,

Sans en être certain, il me semble que ton problème vient de la manière dont tu changes ton image :
var mapImg = document.getElementById("map");
mapImg.onload = function() {
	mapImg.className = "visible";
	document.getElementById("loading").className = "hidden";
};
mapImg.src = xhr.responseText;
Essaye de le faire d'une manière différente. (la dernière ligne entre autres Smiley cligne )

Sur un de mes anciens scripts, je chargeais une image en mettant mon conteneur à jour via les méthodes DOM lorsque j'avais reçu une réponse... Le seul qui ne fonctionnait pas là-dessus était Opera... Pour lui, j'avais dû passer par innerHTML.

Bien que ton script ne soit pas identique à celui dont je te parle, le problème est similaire... donc pitêtre qu'en rechargeant toute l'image via innerHTML et non en se contentant de changer la source... Smiley murf
Sinon, pour changer la source, il est préférable de faire :
image.setAttribute('src','nouvelleSource...')
MoOx a écrit :
Sinon, pour changer la source, il est préférable de faire :
image.setAttribute('src','nouvelleSource...')
Ah bon, et pourquoi ? L'attribut src fait partie du DOM HTML 2, et il est très bien supporté.
Modérateur
Oui. Smiley cligne

D'une manière générale, il est préférable de se servir des méthodes/propriétés natives à JS avant de se servir des méthodes DOM car on a plus de chances qu'elles soient implémentées correctement. Smiley smile

Bon, et de toute façon, en JS, tout dépend du navigateur... donc faut traiter au cas par cas... Smiley ravi
Modifié par koala64 (08 Mar 2007 - 14:57)