Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

Re: serieux probleme !!!

Envoyé: 3 juin 2004, 8h24 par Oznog


Salut,

AVANT TOUT, PREND LE TEMPS DE DONNER UN TITRE (sujet) SIGNIFICATIF SINON JE DÉTRUIT LE MESSAGE.

Bien sûr, un guillemet est un caractèrer réservé pour délimiter une chaîne de caractère mais en même temps un simple caractère.

Alors pour éviter ce problème on a inventé un symbole pour éviter d'interpréter un caractère spécial. On parle de "escape".

Dans la plupart des langages issu du C comme le Javascript c'est la barre oblique (\).

Donc dans ton cas tu as une chaîne de caractère qui contient une instruction qui contient elle même des chaînes de caractères. Il faut tout simplement oublier l'instruction, c'est comme si c'était du texte brut sans plus pour le moteur Javascript :

document.write("<a href='#' onClick='return show('toto','toto');'></a>");

Donc à première vue ton code est bon puisque les délimitateur sont les doubles guillemets.

Par contre le code Javascript ainsi généré est lui problématiquem mais on vient d'isoler le problème qui est maintenant simplement :

onClick='return show('toto','toto');'

On voit très bien le conflit, tu peux faire alors :

onClick='return show(\'toto',\'toto');'

MAIS ATTENTION, le résultat sera toujours une fois généré dans la page :

onClick='return show('toto','toto');'

Causant toujours le même problème. C'est qu'en fait il y a 3 imbrications, c'est le "onclick" HTML qui doit être "escappé". D'ailleurs en HTML et particulièrement en XHTML, tu ne devrais jamais utiliser le simple guillemet!

Fais-tu <a href='mapage.htm'> ???

Non tu fais probablement <a href="mapage.htm"> alors pourquoi onClick='return...' ??

Le bon code devrait être :

document.write("<a href='#' onClick="return show('toto','toto');"></a>");

Mais là tu as un problème avec la génération du code, un conflit de doubleguillemets. C'est donc lui et non pas les simple que tu dois "escappé".

Code complet

document.write("<a href='#' onClick=\"return show('toto','toto');\"></a>");

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@