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&amp;" 
        style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a>
Foi útil?

Solução

Usar &amp; 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 &amp) 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.)

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top