Javascript, erreur bizarre

Résolu/Fermé
Alexandre - 3 déc. 2008 à 11:16
 Sims' - 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
A voir également:

5 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
3 déc. 2008 à 11:58
Bonjour,

Le mieux serait que tu nous donnes ce fameux code javascript, parce que là on peut pas faire grand chose sans :)
0
<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
0
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
0
Navré toujours
An invalid or illegal string was specified" code: "12

je comprend vraiment pas....
0
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;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
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
0
Sims' > 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...
0