Comment échaper 4 apostrophes dans un script JS DOM ?

Résolu
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.

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    '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. 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.