Pour recréer le bug
- créez un équipement universel
- attachez-le à un connecteur HTTP ou TCP/IP (pas essayé avec les autres)
- créez une variable "x" de format string
- tapez le code javascript suivant:
- sauvez votre équipement
- exécutez le code JS, x vaut à présent "ABC" (vérifiable avec un widget)
- modifiez le code de la manière suivante:
- sauvez votre équipement
- exécutez le code JS, un widget affichant la valeur de x afficherait "A" et "BC" sur deux lignes différentes
- modifiez encore le code
- sauvez
- ca plante avec le code "Littéral de la chaine n'a pas de limite (declarations#xxx)"
Le problème vient très nettement de l'emploi double du "\n" mais aussi de l'exécution du code JS (par un widget ca fait la même chose mais sans le message d'erreur (car on est dans le DS?) ).
Le plus étonnant est que si vous tapez directement le dernier code ci-dessus, sans passer par les autres étapes, vous arriverez à sauver votre code et à l'exécuter (et à afficher dans un widget "A","B" et "C" sur 3 lignes différentes). Mais ça plantera la prochaine fois que vous modifierez le code et le sauverez.
J'ai essayé de bypasser le problème avec
mais ça plante tout autant dès qu'on modifie à nouveau le code après l'avoir exécuté ...
Conclusion: pas moyen d'avoir une variable JS avec deux "\n" ???? Est-ce normal ? Est-ce que ça peut se corriger ?
Merci de vos réponses.
EDIT: j'ai oublié de dire qu'une fois qu'on a le message, on a beau enlever le "\n" qui pose problème (ou les enlever tous les deux ou réécrire tout à fait autre chose) ça plante à chaque sauvegarde avec le même message. La seule solution étant de virer la commande JS (ce qui casse tous les liens dans les WIDO/WISEE) et de tout réécrire
PS: après un rapide test, le problème ne se pose pas pour "\t" ... EDIT 2: par contre, même problème pour "\r" !!
- créez un équipement universel
- attachez-le à un connecteur HTTP ou TCP/IP (pas essayé avec les autres)
- créez une variable "x" de format string
- tapez le code javascript suivant:
Code :
var x = "A" + "B" + "C";
- exécutez le code JS, x vaut à présent "ABC" (vérifiable avec un widget)
- modifiez le code de la manière suivante:
Code :
var x = "A\n" + "B" + "C";
- exécutez le code JS, un widget affichant la valeur de x afficherait "A" et "BC" sur deux lignes différentes
- modifiez encore le code
Code :
var x = "A\n" + "B\n" + "C";
- ca plante avec le code "Littéral de la chaine n'a pas de limite (declarations#xxx)"
Le problème vient très nettement de l'emploi double du "\n" mais aussi de l'exécution du code JS (par un widget ca fait la même chose mais sans le message d'erreur (car on est dans le DS?) ).
Le plus étonnant est que si vous tapez directement le dernier code ci-dessus, sans passer par les autres étapes, vous arriverez à sauver votre code et à l'exécuter (et à afficher dans un widget "A","B" et "C" sur 3 lignes différentes). Mais ça plantera la prochaine fois que vous modifierez le code et le sauverez.
J'ai essayé de bypasser le problème avec
Code :
var r = "\n";
var x = "A" + r + "B" + r + "C";
mais ça plante tout autant dès qu'on modifie à nouveau le code après l'avoir exécuté ...
Conclusion: pas moyen d'avoir une variable JS avec deux "\n" ???? Est-ce normal ? Est-ce que ça peut se corriger ?
Merci de vos réponses.
EDIT: j'ai oublié de dire qu'une fois qu'on a le message, on a beau enlever le "\n" qui pose problème (ou les enlever tous les deux ou réécrire tout à fait autre chose) ça plante à chaque sauvegarde avec le même message. La seule solution étant de virer la commande JS (ce qui casse tous les liens dans les WIDO/WISEE) et de tout réécrire
PS: après un rapide test, le problème ne se pose pas pour "\t" ... EDIT 2: par contre, même problème pour "\r" !!
www.osmotiq.com, domotique, développement logiciel et web -- tests & tutoriels KNX, Lifedomus, ZWave, etc.
Twitter: osmotiq
Twitter: osmotiq