Le code ci-dessus est le code javascript. Problème est l'impression bonjour ou toute autre chaîne. Si je tape juste 123 à la place de bonjour, ça donne alerte. Mais je ne suis pas capable d'utiliser une chaîne comme bonjour là-bas. Normalement une chaîne dans une fonction d'alerte est gardée entre guillemets '' mais le contenu entier est entre guillemets et j'ai déjà utilisé la guillemets simples au début de la fonction onclick. J'ai essayé d'utiliser le caractère Escape ("\") mais cela n'a pas aidé. Aucune suggestion?Javascript en html - Utilisation du guillemet simple dans un autre guillemet simple
Répondre
Essayez ceci:
document.getElementById("img").innerHTML = '<img src="/sitepath/' + imgg + '.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
Vous aurez besoin d'utiliser les doubles guillemets et dans l'attribut onclick
document.getElementById("img").innerHTML="<img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick=\"alert('hello');\" />";
Peu importe si vos citations externes sont simples ou doubles. Vous pouvez échapper un caractère dans une chaîne externe avec une barre oblique inverse ... \ 'devient' dans la chaîne elle-même. L'exemple de Darin ou de Masood fonctionnera. Mais Masood est ignorant en référence à un besoin d'utiliser des guillemets doubles comme l'enceinte extérieure.
Si vous utilisez apostrophes comme séparateur pour les attributs HTML, vous devez HTML encode les apostrophes que vous mettez à l'intérieur de l'attribut:
document.getElementById("img").innerHTML="< img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick='alert('hello');' />";
Je préfère utiliser l'apostrophe comme chaîne délimitée en Javascript et entre guillemets comme délimiteurs pour les attributs HTML. Ensuite, vous échapper juste les apostrophes que vous avez à l'intérieur de la chaîne Javascript:
document.getElementById("img").innerHTML='< img src="/sitepath/'+imgg+'.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
Pour mettre une chaîne dans un Javascript, dans un attribut HTML, dans une chaîne en Javascript, vous:
- évasion toute délimiteurs de chaîne dans la chaîne
- HTML encode le code Javascript
- d'échapper à toute délimiteurs de chaîne dans la chaîne HTML
Ce ne sont pas des apostrophes: ce sont des guillemets simples. Les apostrophes sont le même caractère, mais servent une fonction grammaticale assez différente. – TRiG
@TRiG: Oui, ce sont des apostrophes. Pour être précis, c'est une "apostrophe de machine à écrire". Un guillemet n'est pas du tout un caractère, c'est le texte que vous placez entre guillemets, donc pour être correct, vous devriez l'appeler "guillemet simple" qui est un peu lourd, et qui n'est pas vraiment correct car c'est un caractère différent. Les guillemets réels (simples, doubles et tous les autres) sont des caractères typographiques, et non ce qui est utilisé en Javascript. – Guffa
Vous avez JavaScript dans HTML en JavaScript. C'est naturellement déroutant. Mieux vaut éviter les problèmes chaîne-élingage de guillemets et les échappements (qui, a tort, peut facilement conduire à des failles de sécurité lorsque les données soumises par l'utilisateur est utilisé), et de le faire le chemin DOM:
var img= new Image();
img.src= '/sitepath/'+imgg+'.jpg';
img.width= 72;
img.height= 44;
img.onclick= function() {
alert('hello');
};
document.getElementById('img').appendChild(img);
si quelqu'un doit envoyer une variable au lieu d'une chaîne "bonjour"? Quelque chose comme ceci:
function showContent(toPopulate) {
document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(*toPopulate*);'>show</a>"
}
function showOtherContent(toPopulate) {...}
alors comment envoyer toPopulate comme une variable à showOtherContent()?
ci-dessus est résolu comme ceci:
document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(\"" + toPopulate + "\");'>show</a>"
J'ai essayé d'utiliser le caractère Escape (le "\"), mais il n'a pas aidé
Javascript est différent de C#, vous utilisez juste deux fois à la fois, exemple: alert('We are\\'t going to go')
- 1. Remplacer le guillemet simple échappé par guillemet simple
- 2. javascript regex supprimer guillemet simple en match
- 3. Filer/Remplacer un guillemet simple dans Java
- 4. guillemet simple dans SQL Server
- 5. Rechercher un texte avec guillemet simple
- 6. échapper guillemet simple dans adhoc requête
- 7. sql ce escape '(guillemet simple) C#
- 8. Regex, guillemet simple ou double citation
- 9. str_ireplace ne fonctionnera pas avec guillemet simple
- 10. mysql - remplacer ' avec guillemet simple dans un champ
- 11. Comment remplacer guillemet simple avec guillemet double en requête SQL - oracle 10g?
- 12. requête LDAP échec en raison de guillemet simple
- 13. Regex pour remplacer un guillemet simple avec deux guillemets simples
- 14. comment gérer guillemet simple dans $ .ajax POST (JQuery)?
- 15. Echapper guillemet dans String.Format()
- 16. Ajouter une apostrophe/guillemet simple à mon match RegEx
- 17. php guillemet
- 18. Nécessité de remplacer une seule entité guillemet HTML dans MySQL
- 19. simplejson n'échappant pas de guillemet simple sur le serveur du moteur de l'application
- 20. Comment puis-je inclure un guillemet simple dans le séparateur de transformation d'élément MSBuild?
- 21. en utilisant preg_replace pour ajouter une barre oblique inverse avant un guillemet simple
- 22. Pourquoi guillemet changer le résultat
- 23. Remplacer la virgule par un double guillemet dans le javascript
- 24. Comment échapper un guillemet entre guillemets?
- 25. Guillemet double dans les commentaires du bloc Scala?
- 26. php xpath traitant de l'apostrophe/guillemet simple dans le texte recherché
- 27. ne peut pas encoder guillemet simple (') en utilisant render_to_string de django
- 28. " modifications au guillemet double
- 29. Comment faire face à guillemet simple dans la requête SQL VBA Word?
- 30. javascript simple double citation problème
Pourquoi ne choisissez-vous pas la bonne réponse ici? – Kristopher