J'essaie d'utiliser une chaîne contenant des guillemets doubles dans l'attribut title d'une ancre. Jusqu'ici j'ai essayé ces:
<a href=".." title="Some \"text\"">Some text</a>
<!-- The title looks like `Some \` --!>
et
<a href=".." title="Some "text"">Some text</a>
<!-- The title looks like `Some ` --!>
Veuillez noter que l’utilisation de guillemets simples est non une option.
Cette variante -
<a href=".." title="Some "text"">Some text</a>
Est correct et cela fonctionne comme prévu - vous voyez des citations normales dans la page rendue.
Voici un extrait des caractères d'échappement HTML extraits de ne page en cache sur archive.org :
< | less than sign <
@ | at sign @
] | right bracket ]
{ | left curly brace {
} | right curly brace }
… | Ellipsis …
‡ | double dagger ‡
’ | right single quote ’
” | right double quote ”
– | short dash –
™ | trademark ™
¢ | cent sign ¢
¥ | yen sign ¥
© | copyright sign ©
¬ | logical not sign ¬
° | degree sign °
² | superscript 2 ²
¹ | superscript 1 ¹
¼ | fraction 1/4 ¼
¾ | fraction 3/4 ¾
÷ | division sign ÷
” | right double quote ”
> | greater than sign >
[ | left bracket [
` | back apostrophe `
| | vertical bar |
~ | tilde ~
† | dagger †
‘ | left single quote ‘
“ | left double quote “
• | bullet •
— | longer dash —
¡ | inverted exclamation point ¡
£ | pound sign £
¦ | broken vertical bar ¦
« | double left than sign «
® | registered trademark sign ®
± | plus or minus sign ±
³ | superscript 3 ³
» | double greater-than sign »
½ | fraction 1/2 ½
¿ | inverted question mark ¿
“ | left double quote “
— | dash —
Le code d'échappement "
peut également être utilisé à la place de "
.
Utiliser "
est le moyen de le faire. J'ai essayé votre deuxième extrait de code, et cela fonctionne à la fois dans Firefox et Internet Explorer.
Cela peut fonctionner avec n'importe quel caractère de la liste HTML Escape character , mais j'ai eu le même problème avec un projet Java. J'ai utilisé StringEscapeUtils.escapeHTML("Testing \" <br> <p>")
et le titre était <a href=".." title="Test" <br> <p>">Testing</a>
.
Cela ne fonctionnait que pour moi lorsque j'ai changé le StringEscapeUtils en StringEscapeUtils.escapeJavascript("Testing \" <br> <p>")
et cela fonctionnait dans tous les navigateurs.
Il existe au moins une situation dans laquelle l’utilisation de guillemets simples ne fonctionnera pas, c’est-à-dire si vous créez le balisage "à la volée" à partir de JavaScript. Vous utilisez des guillemets simples pour contenir la chaîne, puis toute propriété du marquage peut avoir des guillemets doubles pour sa valeur.
Peut-être pouvez-vous utiliser JavaScript pour résoudre votre problème de navigation croisée. Il utilise un mécanisme d'échappement différent, avec lequel vous êtes évidemment déjà familier:
(reference-to-the-tag).title = "Some \"text\"";
Il ne sépare pas strictement les fonctions de HTML, JavaScript et CSS comme les gens le souhaitent, mais qui a besoin de rendre heureux? Vos utilisateurs ou techniciens que vous ne connaissez pas?