JS : échapper des quotes
9 messages
• Page 1 sur 1
- Romuald
- WRInaute discret

- Messages: 163
- Inscription: 2 Mai 2005
JS : échapper des quotes
J'ai un bout de code à générer via un document.write("");
ça ressemble à :
Mais, comment échapper les backslash ? Si je supprimes les quotes de document.write() ça fonctionne pour IE ou Gecko, mais d'autre navigateur n'aime pas (Opéra pou rne citer que lui en premier), ce qui est plutôt normal.
Quelqu'un à une solution miracle ?
ça ressemble à :
- Code: Tout sélectionner
<script type="text/javascript">
document.write(" <label for="truc">Ma ville <sup>*</sup></label>
<input type="hidden" name="ville" id="ville" value="<?=$ville?>" />
<input type="text" name="q" id="truc" value="<?=$ville?>"
onkeypress="if(this.value.length > 1){maFonction()};"
onfocus="this.className='formActiv'"
onblur="this.className=''" />")
</script>
Mais, comment échapper les backslash ? Si je supprimes les quotes de document.write() ça fonctionne pour IE ou Gecko, mais d'autre navigateur n'aime pas (Opéra pou rne citer que lui en premier), ce qui est plutôt normal.
Quelqu'un à une solution miracle ?
-

dd32 - Modérateur

- Messages: 3379
- Inscription: 9 Sep 2005
Ca marche ça ?
- Code: Tout sélectionner
<script type="text/javascript">
document.write(" <label for=\"truc\">Ma ville <sup>*</sup></label>
<input type=\"hidden\" name=\"ville\" id=\"ville\" value=\"<?=$ville?>\" />
<input type=\"text\" name=\"q\" id=\"truc\" value=\"<?=$ville?>\"
onkeypress=\"if(this.value.length > 1){maFonction()};\"
onfocus=\"this.className='formActiv'\"
onblur=\"this.className=''\" />");
</script>
-

Eric 2A - WRInaute discret

- Messages: 194
- Inscription: 26 Fév 2006
Et j'ajouterais qu'il est préférable d'"échapper" les '/' pour les fermetures de balises :
</a> devient <\/a> ; </div> devient <\/div> ; etc...
Ceci afin de suivre les recomandations W3C et donc, de ne pas avoir de messages d'erreurs lors du test de validation.
</a> devient <\/a> ; </div> devient <\/div> ; etc...
Ceci afin de suivre les recomandations W3C et donc, de ne pas avoir de messages d'erreurs lors du test de validation.
-

Eric 2A - WRInaute discret

- Messages: 194
- Inscription: 26 Fév 2006
Source : SELFHTML
SELFHTML a écrit:Avec <script> vous introduisez un passage Script, avec </script> vous mettez fin au passage Script. Dans ce passage, vous pouvez noter des instructions du langage script utilisé. Du point de vue de HTML, tout ce qui figure dans ce passage est considéré comme du "pur texte". De ce fait, des conflits peuvent en fin de compte survenir entre un langage tel que JavaScript et un analyseur (syntaxique HTML) strictement conforme SGML. Un tel analyseur de syntaxe considère le passage script comme terminé dès qu'il rencontre la prochaine chaîne de caractères </. Quand vous avez besoin de cette chaîne de caractères dans JavaScript comme dans l'exemple ci-dessus dans la dernière instruction où à l'aide de document.write un titre N°1 est écrit dans le document. À la fin du texte est mentionné là <\/h1> à la place de </h1>. La barre oblique inverse (Backslash) sert en JavaScript à masquer le signe qui la suit, ce qui dans l'exemple à l'endroit où elle est placée et du point de vue de JavaScript ne signifie rien d'autre et n'a pas d'autre effet. La barre oblique inverse n'est pas non plus conçue pour l'interpréteur JavaScript mais pour les analyseurs syntaxiques HTML tatillons.
- Romuald
- WRInaute discret

- Messages: 163
- Inscription: 2 Mai 2005
Pour Opéra oui...!
Par contre le validateur n'aime pas, et les navigateurs du coup non plus...
Ca ressemble à ça :
Ca s'affiche, mais j'ai un onclick qui doit me remplir le value="" via getElementById('myId') mais il ne fonctionne pas !
Et le validateur me refuse tout en bloc (element p not allowed par exemple).
Grmbl!
Par contre le validateur n'aime pas, et les navigateurs du coup non plus...
Ca ressemble à ça :
- Code: Tout sélectionner
<script type="application/javascript">
document.write("<p><label for=\"myId\">Ma ville <sup>*<\/sup><\/label><input type=\"text\" name=\"q\" id=\"myId\" value=\"<?=$ville?>\" onkeypress=\"if(this.value.length > 1){myFunction()};\" onfocus=\"this.className='formActiv'\" onblur=\"this.className=''\" /><\/p>");
</script>
Ca s'affiche, mais j'ai un onclick qui doit me remplir le value="" via getElementById('myId') mais il ne fonctionne pas !
Et le validateur me refuse tout en bloc (element p not allowed par exemple).
Grmbl!
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- échapper à la pub de l'hébergeur
- échapper les points d'interrogation...
- [Google] In Quotes
- variable entre quotes
- Magic Quotes et Safe_Mode
- Sécurité avec PHP et 'Magic Quotes'
- Problème d'échappement de quote - double quotes
- Url rewriter les reponses, quotes, nouveaux topics de phpbb
- Echapper au filtrage de contenu pour sexe quand pas de sexe
- Google Viewer, Google WebQuotes et Froogle - 13-12-2002
- Tutoriel mod_pagespeed en français - 04-11-2010
Consultez la description détaillée des produits ou services de Google suivants : Google WebQuotes
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
