[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
Le 21/09/10 18:32, Yliur a écrit :
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
Je ne connais pas le jsp.
Cette ligne-là est où ?
${} est censé faire quoi ? et où ? (serveur? navigateur?)
parametre ... c'est quoi ?
Car, au final, le brouteur devrait avoir en code-source qque chose
comme :
onchange="faireQueChose('param1','param2');"
et non pas
onChange="javascript(faireQueChose('param1','param2')"
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
et :
${fnechap:js('onchange="'+${parametre}+'"')}
?
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
tant qu'on ne saura pas en quel string est passé ${parametre}
...
pas fastoche de voir ce qu'il y aurait à échapper
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
??? c'est le navigateur qui est maintenant chargé de traduire le
JavaScript du serveur ?
Le 21/09/10 18:32, Yliur a écrit :
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
Je ne connais pas le jsp.
Cette ligne-là est où ?
${} est censé faire quoi ? et où ? (serveur? navigateur?)
parametre ... c'est quoi ?
Car, au final, le brouteur devrait avoir en code-source qque chose
comme :
onchange="faireQueChose('param1','param2');"
et non pas
onChange="javascript(faireQueChose('param1','param2')"
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
et :
${fnechap:js('onchange="'+${parametre}+'"')}
?
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
tant qu'on ne saura pas en quel string est passé ${parametre}
...
pas fastoche de voir ce qu'il y aurait à échapper
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
??? c'est le navigateur qui est maintenant chargé de traduire le
JavaScript du serveur ?
Le 21/09/10 18:32, Yliur a écrit :
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
Je ne connais pas le jsp.
Cette ligne-là est où ?
${} est censé faire quoi ? et où ? (serveur? navigateur?)
parametre ... c'est quoi ?
Car, au final, le brouteur devrait avoir en code-source qque chose
comme :
onchange="faireQueChose('param1','param2');"
et non pas
onChange="javascript(faireQueChose('param1','param2')"
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
et :
${fnechap:js('onchange="'+${parametre}+'"')}
?
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
tant qu'on ne saura pas en quel string est passé ${parametre}
...
pas fastoche de voir ce qu'il y aurait à échapper
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
??? c'est le navigateur qui est maintenant chargé de traduire le
JavaScript du serveur ?
[...]
[...]
[...]
[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
Voilà, toutes les indications sont les bienvenues...
[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
Voilà, toutes les indications sont les bienvenues...
[multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
Bonjour
Dans une page jsp qui contient un javascript, certains paramètres du
script ne sont pas en dur dans la page mais sont des paramètres venant
de la requête. Le script est appelé dans un attribut onChange, comme
ça :
onChange="javascript ('${parametre}')"
Pour éviter les ennuis il me faut échapper les caractères de la valeur
du paramètre. Donc j'appelle une fonction d'échappement javascript
(celle de la fondation Apache), ça ressemble en gros à ça :
onChange="javascript ('${fnechap:js(parametre)}')"
Et dans certains cas ça ne fonctionne pas.
Ça fonctionne mieux en appliquant aussi un échappement HTML :
onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
mais je ne comprends pas pourquoi.
L'échappement Javascript devrait suffire, non ?
Et si le paramètre passé à mon script sert à autre chose qu'à être
réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
gêner ? A moins que l'échappement HTML ne soit "résolu" par le
navigateur web avant de passer le paramètre au script ?
Voilà, toutes les indications sont les bienvenues...
On 21/09/2010 18:32, Yliur wrote:
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
>
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
>
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
>
> Voilà, toutes les indications sont les bienvenues...
>
Une règle simple :
- Ça va être mis dans du HTML ? => nécessite un échappement HTML
- Ça va être mis dans du JavaScript ? => nécessite un échappement
JavaScript.
- Ça va être mis dans message UTF-7 ? => nécessite un échappement
UTF-7
- Ça va être mis dans du MIME ? => nécessite un échappement MIME
- Ça va être mis dans du JavaScript, embarqué dans du HTML, qui est
transmis en UTF-7, à l'intérieur d'un message MIME ? => Ça nécessite
un échappement JavaScript, suivi d'un échappement HTML, suivi d'un
échappement UTF-7, suivi d'un échappement MIME.
Il est vrai que les navigateurs sont assez permissifs avec le
JavaScript mal échappé en HTML. Mais parfois ils ne s'y retrouvent
pas. Normalement, ils doivent être échappés HTML... Parce qu'ils sont
dans du HTML.
--
Mayeul
On 21/09/2010 18:32, Yliur wrote:
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
>
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
>
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
>
> Voilà, toutes les indications sont les bienvenues...
>
Une règle simple :
- Ça va être mis dans du HTML ? => nécessite un échappement HTML
- Ça va être mis dans du JavaScript ? => nécessite un échappement
JavaScript.
- Ça va être mis dans message UTF-7 ? => nécessite un échappement
UTF-7
- Ça va être mis dans du MIME ? => nécessite un échappement MIME
- Ça va être mis dans du JavaScript, embarqué dans du HTML, qui est
transmis en UTF-7, à l'intérieur d'un message MIME ? => Ça nécessite
un échappement JavaScript, suivi d'un échappement HTML, suivi d'un
échappement UTF-7, suivi d'un échappement MIME.
Il est vrai que les navigateurs sont assez permissifs avec le
JavaScript mal échappé en HTML. Mais parfois ils ne s'y retrouvent
pas. Normalement, ils doivent être échappés HTML... Parce qu'ils sont
dans du HTML.
--
Mayeul
On 21/09/2010 18:32, Yliur wrote:
>
> [multiposté sur fr.comp.lang.java et fr.comp.lang.javascript]
>
>
> Bonjour
>
> Dans une page jsp qui contient un javascript, certains paramètres du
> script ne sont pas en dur dans la page mais sont des paramètres
> venant de la requête. Le script est appelé dans un attribut
> onChange, comme ça :
>
> onChange="javascript ('${parametre}')"
>
> Pour éviter les ennuis il me faut échapper les caractères de la
> valeur du paramètre. Donc j'appelle une fonction d'échappement
> javascript (celle de la fondation Apache), ça ressemble en gros à
> ça :
>
> onChange="javascript ('${fnechap:js(parametre)}')"
>
> Et dans certains cas ça ne fonctionne pas.
>
> Ça fonctionne mieux en appliquant aussi un échappement HTML :
>
> onChange="javascript ('${fnechap:js(fnechap:html(parametre))}')"
>
> mais je ne comprends pas pourquoi.
> L'échappement Javascript devrait suffire, non ?
>
> Et si le paramètre passé à mon script sert à autre chose qu'à être
> réinséré dans du code HTML, est-ce que l'échappement HTML ne va pas
> gêner ? A moins que l'échappement HTML ne soit "résolu" par le
> navigateur web avant de passer le paramètre au script ?
>
> Voilà, toutes les indications sont les bienvenues...
>
Une règle simple :
- Ça va être mis dans du HTML ? => nécessite un échappement HTML
- Ça va être mis dans du JavaScript ? => nécessite un échappement
JavaScript.
- Ça va être mis dans message UTF-7 ? => nécessite un échappement
UTF-7
- Ça va être mis dans du MIME ? => nécessite un échappement MIME
- Ça va être mis dans du JavaScript, embarqué dans du HTML, qui est
transmis en UTF-7, à l'intérieur d'un message MIME ? => Ça nécessite
un échappement JavaScript, suivi d'un échappement HTML, suivi d'un
échappement UTF-7, suivi d'un échappement MIME.
Il est vrai que les navigateurs sont assez permissifs avec le
JavaScript mal échappé en HTML. Mais parfois ils ne s'y retrouvent
pas. Normalement, ils doivent être échappés HTML... Parce qu'ils sont
dans du HTML.
--
Mayeul