E comercial no endereço de e-mail (href)
-
24-09-2019 - |
Pergunta
Estou trabalhando com o endereço de e -mail que tem um ampera e, o usuário deseja que um link 'entre em contato' 'para abrir uma nova mensagem com seu endereço preenchido, normalmente uso o HREF, mas o Ampersand está fazendo com que isso não funcione, alguma idéia?
aqui está o que tenho no momento:
<a href="mailto:L&D@gha.org.uk? subject=MessageTitle&"
style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a>
Solução
Usar &
em vez de simples &
.Seu URL href está dentro do HTML, portanto, precisa ser escapado corretamente para ser um HTML válido.
Outras dicas
Na verdade, isso é não um E comercial ambíguo, então é perfeitamente válido usar o HTML que você sugeriu.A resposta atualmente aceita está incorreta (embora eu concorde que é uma boa ideia sempre codificar o E comercial para evitar confusão).
A especificação HTML define "e" comercial ambíguo da seguinte forma:
Um e comercial ambíguo é um caractere U + 0026 E comercial (&) seguido por um ou mais caracteres no intervalo U + 0030 DÍGITO ZERO (0) a U + 0039 DÍGITO NOVE (9), U + 0061 LETRA PEQUENA LATIN A a U+007A LETRA Z MINÚSCULA LATINA e U+0041 LETRA MAIÚSCULA A LATINA a U+005A LETRA Z MAIÚSCULA LATINA, seguida por um caractere de ponto e vírgula U+003B (;), onde esses caracteres não correspondem a nenhum dos nomes fornecidos no seção de referências de caracteres nomeados.
Entidades que não terminam em ponto e vírgula (como &
) são tratados de maneira diferente em valores de atributos:
Se a referência de caractere estiver sendo consumida como parte de um atributo e o último caractere correspondente não for um caractere de ponto e vírgula U+003B (;) e o próximo caractere for um caractere de SINAL DE IGUALDADE U+003D (=) ou no intervalo U+0030 DÍGITO ZERO (0) a U+0039 DÍGITO NOVE (9), U+0041 LETRA MAIÚSCULA A a U+005A LETRA Z MAIÚSCULA ou U+0061 LETRA PEQUENA A a U+007A LETRA Z PEQUENA , então, por motivos históricos, todos os caracteres que foram correspondidos após o caractere E comercial U+0026 (&) deverão ser não consumidos e nada será retornado.
Mas isso não se aplica aqui, pois o próximo caractere é @
.
FWIW, pesquisei isso exaustivamente e escrevi sobre minhas descobertas aqui: http://mathiasbynens.be/notes/ambiguous-ampersands
Eu também criei uma ferramenta on-line que você pode usar para verificar sua marcação em busca de e comerciais ambíguos ou referências de caracteres que não terminam com ponto e vírgula, sendo que ambos são inválidos.(Nenhum validador HTML atualmente faz isso corretamente.)