Test d'existance d'une variable ? [JavaScript] - HTML/CSS - Programmation
Marsh Posté le 07-01-2006 à 14:49:42
je suis pas sur que sa marche en javascript mais bon :
if (toto == "" ) {
}
si la variable est vide alor elle existe pas non ?!
Marsh Posté le 07-01-2006 à 15:06:05
Ben non, quand IE (ou autre) tombe sur toto et qu'il essaie d'interpréter la variable, il répond qu'elle n'existe pas et te balance une grosse exception à travers la tronche. Il essaie même pas d'évaluer le reste de la ligne...
Marsh Posté le 07-01-2006 à 15:56:05
Bon ben tant pis, je fais avec un catch... Mon code marche comme ça. C'est pas top joli mais tant pis
Si jamais quelqu'un trouve une solution clean, merci de le marquer ici
Marsh Posté le 07-01-2006 à 17:03:58
bah :
tu met un var toto = null; au debut de ton script.
et pis tu fe un
if(toto)
{
}
apres ca depend c koi ta variable.
Si par exemple c une variable ki recupere la valeur d'un champ de formulaire :
si l'utilisateur de rentre rien ds le champ, toto est tjrs "null" et sinon bah ta variable n'est pas vide et dc la condition est remplie
Marsh Posté le 07-01-2006 à 19:10:35
Ben en fait, j'ai un fichier de paramétrage propre à une application 1 qui contient
allDocsReadOnly=true
Mais dans l'application 2, le même fichier de paramétrage ne doit pas voir apparaitre cette variable.
Donc quand je veux l'utiliser, c'est du code qui est commun aux deux applications... Et je cherche à savoir si la variable existe ou pas. Pour un attribut d'objet, il suffit de comparer à undefined mais là, la comparaison if (allDocsReadOnly == undefined) part en exception...
Pour typeOf, j'ai pas essayé, pourquoi pas. Faut que je regarde les specs pour voir ce quelle fait...
Marsh Posté le 07-01-2006 à 19:13:22
Bon, je viens de regarder ce que typeOf fait et il comporte les mêmes limitations que ma comparaison à undefined...
Je crois que je vais devoir garder le try / catch.
Marsh Posté le 07-01-2006 à 19:54:07
et bah tu fai ce ke je t ai dit :
ds ton fichier de parametre de l application 2 tu met un var allDocsReadOnly = null; Je ne vois pas pk tu veux pas la voir apparaitre pour l'aplication 2 elle ne gene pas a priori si?
et hop un chtit test
if(allDocsReadOnly) {
}
Ds le cas de null la condition n'est pas rempli pour true elle l'est.
Marsh Posté le 07-01-2006 à 20:23:14
Je veux pas le mettre parce que le client, qui a accès à ces fichiers de conf, ne doit pas savoir que la fonctionnalité existe... Donc dans l'application 1, il doit y avoir allDocsReadOnly à true ou à false et dans application 2, rien du tout, même pas allDocsReadOnly=null...
Marsh Posté le 07-01-2006 à 22:16:05
Pour savoir si une variable existe en JS il suffit de la tester comme un booléen
Code :
|
Marsh Posté le 07-01-2006 à 23:11:36
non parce que si ta var n'est pas defini kelke par avt ca renvoie une erreur
Marsh Posté le 07-01-2006 à 23:15:03
masklinn a écrit : Pour savoir si une variable existe en JS il suffit de la tester comme un booléen
|
Nan, ça marche pas, ça part en exception...
Je suis pas sûr qu'il y ait une autre solution que le try catch...
Puis bon, ça sera pas la première fois qu'on fait du code bourrin et plutôt crado
Marsh Posté le 07-01-2006 à 14:37:42
Salut les mecs et les moimoiselles !
Bon, voilà, je bosse sur du code qui est commun à plusieurs applications.
On a un fichier de paramétrage qui positionne des variables js. Ce fichier est visible et modifiable par le client.
Là, je dois rajouter une fonctionnalité qui nécéssite l'ajout d'une variable. Mais je veux rajouter la variable que dans un seul projet. Les autres projets ne doivent pas avoir besoin de la variable...
Le but est donc de tester l'existance de la variable et si elle existe, de s'en servir...
J'ai essayé de faire un test genre
if (toto == undefined) {
}
mais ça pète quand même...
J'ai la solution du try catch mais bon, si y'a une solution plus élégante, je suis preneur...
Merci