Question

Je travaille avec l'adresse e-mail qui contient un ampère et dedans, l'utilisateur veut qu'un lien `` contactez-nous '' pour ouvrir un nouveau message avec leur adresse peuplée, j'utilise normalement HREF, mais l'ampère et fait que cela ne fonctionne pas, une idée?

voici ce que j'ai en ce moment :

<a href="mailto:L&D@gha.org.uk? subject=MessageTitle&amp;" 
        style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a>
Était-ce utile?

La solution

Utiliser &amp; au lieu de simple &.Votre URL href se trouve dans le HTML, elle doit donc être correctement échappée pour être du HTML valide.

Autres conseils

En fait, c'est pas un esperluette ambiguë, il est donc parfaitement valable d'utiliser le HTML que vous avez suggéré.La réponse actuellement acceptée est incorrecte (même si je conviens que c'est une bonne idée de toujours coder les esperluettes pour éviter toute confusion).

La spécification HTML définit les esperluettes ambiguës comme suit :

Une esperluette ambiguë est un caractère U+0026 AMPERSAND (&) suivi d'un ou plusieurs caractères compris entre U+0030 CHIFFRE ZÉRO (0) à U+0039 CHIFFRE NEUF (9), U+0061 LETTRE MINUSCULE LATINE A à U+007A LETTRE MINUSCULE LATINE Z, et U+0041 LETTRE MAJUSCULE LATINE A à U+005A LETTRE MAJUSCULE LATINE Z, suivie d'un caractère SEMI-COLONNE U+003B (;), où ces caractères ne correspondent à aucun des noms donnés dans le section de références de personnages nommés.

Entités qui ne se terminent pas par un point-virgule (comme &amp) sont cependant gérés différemment dans les valeurs d'attribut :

Si la référence de caractère est utilisée dans le cadre d'un attribut et que le dernier caractère correspondant n'est pas un caractère SEMI-CÔLE U+003B (;) et que le caractère suivant est soit un caractère SIGNE ÉGAL U+003D (=) ou dans la plage U+0030 CHIFFRE ZÉRO (0) à U+0039 CHIFFRE NEUF (9), U+0041 LETTRE MAJUSCULE LATINE A à U+005A LETTRE MAJUSCULE LATINE Z, ou U+0061 LETTRE MINUSCULE LATINE A à U+007A LETTRE MINUSCULE LATINE Z , puis, pour des raisons historiques, tous les caractères correspondant après le caractère AMPERSAND U+0026 (&) doivent être non consommés et rien n'est renvoyé.

Mais cela ne s'applique pas ici puisque le caractère suivant est @.

FWIW, j'ai fait des recherches approfondies et j'ai écrit mes découvertes ici : http://mathiasbynens.be/notes/ambiguous-ampersands

J'ai également créé un outil en ligne que vous pouvez utiliser pour vérifier votre balisage pour les esperluettes ambiguës ou les références de caractères qui ne se terminent pas par un point-virgule, qui ne sont pas valides.(Aucun validateur HTML ne le fait actuellement correctement.)

http://i.stack.imgur.com/nyGPK.png

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top