2013-05-24 2 views
0

Normalement, nous pouvons utiliser var a = "<a href='index.php'>index</a>"; mais je dois avoir plus de 2 ' dans la même ligne de code comme suit:problèmes de code Javascript avec "et"

var status = "<a href='javascript:window.open('atendimento.php','hhchat','top=70,left=70,width=480,height=450,status=no,location=no,statusbar=no');void(0);'><img src='img/atendimento.png' width='160' border='0' /></a>"; 

Le problème est qu'il commence et se termine le code de ligne ici: 'javascript:window.open('

et j'ai besoin de continuer jusqu'à la fin de la ligne .. Comment peut-il être fait

+2

Je voudrais éviter d'essayer de générer le code HTML sous forme de chaînes. S'il s'agit d'un code dans le navigateur, utilisez les fonctions DOM pour créer des éléments HTML ('var a = document.createElement ('a'); a.href =" javascript: ... ";'). Du côté serveur, utilisez un système de template qui gère les devis pour vous. –

+0

Il existe des systèmes de template bon marché qui fonctionnent aussi bien côté client - mon préféré est [doT] (http://olado.github.io/doT/). – Pointy

Répondre

5

Utilisez " et y échapper:

var status = "<a href='javascript:window.open(\"atendimento.php\",\"hhchat\", ... 

Bien que ce soit un exemple parfait pourquoi vous devriez utiliser JavaScript discret pour lier des événements - http://en.wikipedia.org/wiki/Unobtrusive_JavaScript et vous n'aurez pas ce genre de problème.

+1

merci, fonctionne parfaitement. – alexandreferris

0

Vous devez échapper à vos personnages:

var status = "<a href=\"javascript:window.open('atendimento.php','hhchat','top= ... 

Plus d'infos sur W3Schools: http://www.w3schools.com/js/js_obj_string.asp

+1

[w3fools.com] (http://www.w3fools.com/) –

+0

Idéologie mise à part, je trouve que certaines parties du site expliquent très bien les bases de Javascript. Par exemple, voici la page MDN qui explique l'échappement en Javascript: https://developer.mozilla.org/fr-FR/docs/JavaScript/Guide/Values,_variables,_and_literals C'est un peu bavard pour quelqu'un qui apprend Javascript . – CodingIntrigue

0

Utilisez la barre oblique inverse pour échapper à une citation dans une chaîne:

"<a href='javascript:window.open(\"atendimento.php\" .... 

Ou mieux encore, Considérez la meilleure pratique, qui est d'éviter d'avoir votre code JS en ligne dans votre code HTML. Au lieu de cela, vous devriez envisager de définir un événement click défini pour votre élément dans un code JS distinct. Cela supprimerait l'ensemble du problème des citations imbriquées.

+0

Un événement click ne fonctionnerait-il pas dans le cas d'un clic pour ouvrir dans un nouvel onglet (ctr + clic par exemple)? – Stilltorik

0

utiliser des caractères d'échappement comme ci-dessous après href =

var status = "<a href=\"javascript:window.open('atendimento.php','hhchat','top=70,left=70,width=480,height=450,status=no,location=no,statusbar=no');void(0);\"><img src='img/atendimento.png' width='160' border='0' /></a>"; 
0

échange "et« puis échapper \"

var status = "<a href='javascript:window.open(\"atendimento.php\"... 
Questions connexes