11548 sujets
Bonjour...
C'est tout à fait valide en JavaScript, et ça fonctionne. Par contre, le code que tu tentes d'injecter dans le parseur HTML est parfaitement incorrect (mets-le tel quel dans une page pour t'en rendre compte).
Moralité : utiliser le DOM (document.createElement par exemple) plutôt que document.write.
C'est tout à fait valide en JavaScript, et ça fonctionne. Par contre, le code que tu tentes d'injecter dans le parseur HTML est parfaitement incorrect (mets-le tel quel dans une page pour t'en rendre compte).
Moralité : utiliser le DOM (document.createElement par exemple) plutôt que document.write.
Julien Royer a écrit :
Bonjour...
C'est tout à fait valide en JavaScript, et ça fonctionne. Par contre, le code que tu tentes d'injecter dans le parseur HTML est parfaitement incorrect (mets-le tel quel dans une page pour t'en rendre compte).
Je m'en rend bien compte puisque ce que je cherche à faire c'est pouvoir mettre la ' avant le second test.
Je peux te remettre le code 'corrigé' qui ne fonctionne pas.
<script>
document.write("<div id='test\" \'test'>toto</div>")
</script>
Comme je le disais qu'il y ait 1,2,x \ cela ne fonctionne pas. Il n'y a visiblement pas de moyen d'avoir un mélange de " et ' dans un cas pareil.
Ton problème est loin d'être exprimé clairement... J'espère que tu ne cherches pas à générer un id avec de tels caractères.
Encore une fois, il ne s'agit pas d'un problème JS mais d'un problème HTML.
Tu dois échapper les caractères ' ou " respectivement dans une valeur d'attribut, selon si cette valeur est encadrée par les caractères ' ou " respectivement.
En gros, dans ton exemple, tu pourrais écrire :
Mais encore une fois, c'est du masochisme de faire ça avec document.write...
Modifié par Julien Royer (27 Oct 2009 - 00:34)
Encore une fois, il ne s'agit pas d'un problème JS mais d'un problème HTML.
Tu dois échapper les caractères ' ou " respectivement dans une valeur d'attribut, selon si cette valeur est encadrée par les caractères ' ou " respectivement.
En gros, dans ton exemple, tu pourrais écrire :
document.write('<div id="test" \'test">toto</div>');
Mais encore une fois, c'est du masochisme de faire ça avec document.write...
Modifié par Julien Royer (27 Oct 2009 - 00:34)