Problème d'apostrophe - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Problème d'apostrophe (/showthread.php?tid=4842) |
Problème d'apostrophe - Argorate - 25-05-2010 Hello, voilà j'aurais besoin d'un petit coup de main car je suis bien ambeté en se moment par les apostrophes en JS, sachant que je n'ai pas droit au php et donc aux fonctions addslashies qui m'aurait bien été utile. voilà se que j'ai
Cela fonctione très bien mais voilà, quand la chaine de caractere ${node.properties.title} contient une ou plusieurs apostrophes, evidemment il n'aime pas. Donc voilà la liste des choses que j'ai essayé et qui ne fonctionne pas:
Voilà une autre idée? PS: j'ai mis "on mouseover" partout, parceque si je met en un mot ça fait ça :
RE: problème d'apostrophe - Allwise - 25-05-2010 Salut, Et avec ça : Citation :.replace(/'/g, "\\\'") Ça donne quoi ? RE: problème d'apostrophe - Zamentur - 25-05-2010 Ben déjà tu peux mettre ton texte dans des conteneur type div que tu caches via display:none et ensuite tu fait appel à l'id de la div pour récupérer le texte. Sinon j'ai l'impression que çà utilise eval donc dans ce cas j'essaierai de doubler l'antislash. Et sinon j'essaierai aussi onmouseover = function(){ test(${node.properties.title}) }; Mais je ne connais pas beaucoup les bibliothèques js, ma pratique du js étant très vielle et n'ayant pas refait de gros trucs depuis. RE: problème d'apostrophe - Argorate - 25-05-2010 Allwise: je viens de tester: onmouseover="test(${node.properties.title}.replace(/'/g, "\\\'"))" onmouseover="test(\"${node.properties.title}\".replace(/'/g, "\\\'")) et ça met tjs "ilegal caracter" ou ") missing" Zamentur: je vais tenter l'astuce du div C'est bon ça marche Super l'astuce d'un input hidden, c'est impec! PS: me suis rendu compte d'une erreur idiot dans la fonction test: vaut mieux faire val = val.replace(machin) sinon je risque pas de voir grand changement dans mon alert^^ Bref, merci a vous RE: problème d'apostrophe - Allwise - 25-05-2010 Dans les 2 lignes de ton exemple tu oublies effectivement la parenthèse fermante RE: problème d'apostrophe - Argorate - 25-05-2010 erreur de copie ^^ RE: problème d'apostrophe - Anthor - 26-05-2010 Code PHP :
Déjà si tu veux addslashé. Ensuite, si tu déportais les events comme tout le monde te dit depuis des mois, tu n'aurais jamais eu ce problème. Code PHP :
Et enfin, pour quoi ne pas mettre des guillemets simple pour l'event, et double pour la fonction ? Au lieu de toujours gardes des guillemets double pour l'attribut ?! Code PHP :
RE: problème d'apostrophe - Argorate - 26-05-2010 Hello Alors... pour la fonction de remplacement : ça n'a jamais été le problème, celle que tu me donnes n'aurait pas fonctionner non plus car c'était le passage de la chaine en amont qui posait problème. Pour ce qui est de gérer des événement comme tu le décris, j'avoue que je ne fais jamais comme ça et que je trouve pas ça très naturel. je préfère trouver les évènement à l'endroit où ils s'appliquent: sur les éléments. Mais bon, tu vas encore me dire que c'est pas bien tout ça :p Sinon pour ce qui est de l'échange des ' et ", c'est une bonne idée mais en l'occurrence ça n'aurait était que reporté le problème. Il faut que l'utilisateur puisse mettre des apostrophes comme des guillemets, donc ça n'aurait pas réglés le truc^^ Merci a toi. RE: problème d'apostrophe - Anthor - 26-05-2010 Ben déjà, je comprend pas vraiment d'où tu sors cette notation ${node.properties.title} ? Citation :Alors... pour la fonction de remplacement : ça n'a jamais été le problème, celle que tu me donnes n'aurait pas fonctionner non plus car c'était le passage de la chaine en amont qui posait problème.D'où l'intérêt quand on pose une question de ne pas mettre une seule ligne de code, mais bien quelque chose de fonctionnel ! Citation :Sinon pour ce qui est de l'échange des ' et ", c'est une bonne idée mais en l'occurrence ça n'aurait était que reporté le problème. Il faut que l'utilisateur puisse mettre des apostrophes comme des guillemets, donc ça n'aurait pas réglés le truc34Un utilisateur qui remplit des infobulles JS ? Citation :Pour ce qui est de gérer des événement comme tu le décris, j'avoue que je ne fais jamais comme ça et que je trouve pas ça très naturel. je préfère trouver les évènement à l'endroit où ils s'appliquent: sur les éléments. Mais bon, tu vas encore me dire que c'est pas bien tout ça 10Ben je pourrais difficilement te dire que c'est bien ! RE: problème d'apostrophe - Argorate - 26-05-2010 J'utilise une librairie qui était là quand j'ai repris le code... (dojo) donc j'ai fais avec les notations que j'avais Et les info bulles affichent les nom des fichiers (donc indirectement, oui les utilisateurs remplisse les info-bulle puisque j'affiche le nom dedans). En tout cas je vois pas en quoi c'est "mal" :p |