Comment échaper 4 apostrophes dans un script JS DOM ?

Résolu
rgb44 Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -  
rgb44 Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'aimerai savoir si il existe une technique pour utiliser un 4e apostrophe sur une même ligne de script.

Je m'explique : J'utilise ici 3 chevauchement d'apostrophes ( ", \", et ' ), et ça marche :

document.getElementById("MON_ID").innerHTML="<a onclick=\"document.body.style.backgroundColor='red';\" >Cliquer pour changer le backgroundColor</a>";

Mais lorsque je rajoute un 4e apostrophe, ( ", \", ' , et \' ), j'obtiens une erreur de syntaxe. Voici l'exemple utilisé :

document.getElementById("MON_ID").innerHTML="<a onclick=\"document.body.style.backgroundImage='url(\'http://i.imgur.com/RKJG1Y7.png\')';\" >Cliquer pour changer le backgroundImage</a>";

J'ai beau tous les mélanger, j'ai toujours mon erreur.
Grand merci d'avance pour vos aides et astuces ! :)

PS : Oui, je DOIS utiliser l'innerHTML. Ça serait pas marrant sinon.
PPS : Utiliser '', \'\', etc, ne marche pas non-plus.
A voir également:

1 réponse

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, sachant que l'antislash doit apparaitre dans le code final et que l'apostrophe n'a pas besoin d'échappement car elle se trouve entre guillemets, il faut juste échapper l'antislash:
document.getElementById("MON_ID").innerHTML="<a onclick=\"document.body.style.backgroundImage='url(\\'http://i.imgur.com/RKJG1Y7.png\\')';\" >Cliquer pour changer le backgroundImage</a>";
1
rgb44 Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
 
Eh bien merci beaucoup, ça marche ! :)

Mais en continuant mes recherches hier j'ai découvert que j'ai simplement perdu mon temps, en effet il n'y a même pas besoins d'utiliser d'apostrophe pour les url en JS, j'ai confondu avec le css ! :
\"document.body.style.backgroundImage='url(smileysad.gif)';\"

En tout cas encore merci, ça pourra m'être utile ailleurs.
0