Les Allergies
Alimentaires
Posez votre question Signaler

Javascript, erreur bizarre [Résolu]

Alexandre - Dernière réponse le 3 déc. 2008 à 15:13
Bonjour a tous
j'ai codé une petite page web qui contient un petit javascript (puisqu'il est ds une petite page web xD)
bref quand je lance la page le débugger firefox (firebug) me dit
An invalid or illegal string was specified" code: "12
mon JS récupère un fichier xml fait un getElementsByTagName("age")[n].firstChild.nodeValue avec 0<n<6 puis je fait un parseInt() sur cette valeur et je m'en sert pour déterminer la taille d'un rectangle dessiné avec canvas
dans mon XML j'ai
<identite>
<age>200</age>
<age>180</age>
<age>160</age>
.
.
.
</identite>
quelqu'un sait d'ou peut venir cette erreur et comment la contourner ?
merci pour votre aide
Lire la suite 

Javascript, erreur bizarre »

8 réponses
Réponse
+0
moins plus
Bonjour,

Le mieux serait que tu nous donnes ce fameux code javascript, parce que là on peut pas faire grand chose sans :)
Ajouter un commentaire
Réponse
+0
moins plus
<html>

<head>

<title>bistoufly</title>

<script type="text/javascript">
var t;
var reqXML = new XMLHttpRequest();
var nombre;
var age;

//fonction qui permet de faire tourner en boucle mon js
function boucle(){
creerGraph();
//tour=tour+1;
t=setTimeout("boucle()",500);
}

//fonction qui nettoie mon canvas en dessinant des rectangles blacs ou il faut
function nettoyer(ctx){
ctx.fillStyle= "rgb(255,255,255)";
ctx.fillRect(0,0,60,800);
ctx.fillRect(601,0,200,800);
}

//fonction qui récupère le xml
function getXml(){
reqXML.open("GET", "identite.xml");
reqXML.setRequestHeader("Cache-Control", "no-cache");
reqXML.send();
}

//fonction qui récupère la donnée que je veut dans le xml, je boucle dans le vide tant
//que reqXML n'est pas pret
function recupNbr(){
while(reqXML.readyState != 4 || (reqXML.status != 200 && reqXML.status != 0)) {}

age=reqXML.responseXML.getElementsByTagName("age")[tour].firstChild.nodeValue;
age=parseInt(age);
}

//fonction qui dessine le rectangle dans le canvas
function creerGraph(){
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
getXml();
nettoyer(ctx);

ctx.fillStyle = "rgb(150,150,255)";
ctx.fillRect (10,250-age,50,age);
ctx.fillStyle = "rgb(50,50,255)";
ctx.fillRect (13,250-age+3,44,age-3);
}
</script>
</head>

<body onload="boucle()">
<canvas id="canvas" width="800" height="800"></canvas>
</body>
</html>

j'espère que ca t'éclaire un peu plus
Ajouter un commentaire
Réponse
+0
moins plus
Hello,

essaye la ligne de code suivante :

getElementsByTagName("age")[n].textContent
//par contre pou IE, il faut utiliser :
getElementsByTagName("age")[n].text


si tu veux le premier élément age :

getElementsByTagName("age")[0].textContent
Ajouter un commentaire
Réponse
+0
moins plus
Navré toujours
An invalid or illegal string was specified" code: "12

je comprend vraiment pas....
Sims' - 3 déc. 2008 à 14:45
Re,

essaye de faire ceci avant de faire le getElementByTagName :
var xmlDoc ;

//bon le new ActiveXObject est pour IE sous firefox c xmlDoc=document.implementation.createDocument("","",null);
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(reqXML.responseXML);

age=xmlDoc.getElementsByTagName("age")[0].textContent;
Ajouter un commentaire
Réponse
+0
moins plus
nan bah vous cassez pu la tête, en fait le problème vien de age dans les calculs des rectangles.
Je sais pas pourkoi d'ailleur. Donc ce que j'ai fait c'est que récupNbr je lui ai fait retourner age
directement et j'ai remplacé age dans les calculs par recupNbr() et ca marche. merci a tous
Sims' - 3 déc. 2008 à 15:11
Re,

Tu peux essayé ceci :

var xmlDoc ;
//new ActiveXObject c pour IE, pour FF c document.implementation.createDocument("","",null);
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(reqXML.responseText);

xmlDoc.getElementsByTagName("age")[0].textContent
Sims' - 3 déc. 2008 à 15:13
j'ai posté 2 fois le même message parce que le forum n'affiché pas le message que j'avais déjà posté... l'affichage est légèrement buggé, je crois...
Ajouter un commentaire
Ce document intitulé « javascript, erreur bizarre » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?