Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 2010
-
6 août 2007 à 23:16
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
8 août 2007 à 09:32
De tous les bugs que j'ai eu en javascript celui-ci est de loin le plus étrange que j'ai eu ... d'autant plus qu'il ne se passait que sur Opéra.
var statusT xml.getElementsByTagName("status")[0].firstChild.data; // statusT 200
switch (statusT)
{
case 200 : alert(".."); startChat(); break; // Apparament même si statusT == 200, il n'exécute pas cette ligne
case 400 : Warning (message); break;
default : alert(statusT); break; // Ceci alert 200 ... O_o
}
Et j'ai pourtant essayé de trouver où était le bug avec Opéra. En changant le case 200 par case "200", var statusT ... par var statusT parseInt(...), mais le bug persistait.
Pour le problème je n'ai fait que le contourner en utilisant des if au lieu du switch. Quelqu'un a déjà eu un problème aussi incompréhensible que ça ?
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 7 août 2007 à 23:58
À priori statusT est un nombre puisse que isNaN(statusT) donne False. Donc si statusT == 200 et que c'est un nombre je vois pas quoi d'autre que le chiffre 200 que statusT contient.
J'ai essayé ce que tu m'a proposé avec "switch (Number(statusT))" ça fonctionne et avec "switch (statusT)" ça donne le "problème" bizarre.
Je trouve ça tout de même bizarre que supposant ceci :
statusT == 200
isNaN(statusT) == false
Que :
Dans le switch statusT != 200
C'est probablement à cause de la façon donc Opéra gère les valeurs retournés par xml/ajax. Dommage qu'un aussi bon navigateur est autant de problème à effectuer quelque chose d'aussi simple qu'un switch ...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 8 août 2007 à 09:32
>>avec "switch (Number(statusT))" ça fonctionne et avec "switch (statusT)" ça donne le "problème"
peut-être un ch'tit bug dans Opera ? ça y ressemble en tous cas...
si tu es sûr de ce que tu dis.
faudrait le signaler à leur service technique/développement ?
>> Dommage qu'un aussi bon navigateur
quelques soucis CodesSources/Opera, mais...
c'est vrai qu'il est "plutôt plus que bien", véloce et tout...