2012-02-29 21 views
9

Tengo un enlace de mailto como el <a href="mailto:a&[email protected]" > que se muestra correctamente en html, pero cuando hacemos clic en el enlace, la perspectiva solo muestra un en la dirección a. ¿Alguien ha enfrentado el mismo problema por favor sugerir?¿Problema con el enlace de mailto en la dirección de correo electrónico que contiene ampersand?

+0

Un ampersand no es un carácter válido en una dirección de correo electrónico, ¿o sí? (Edita: oh de hecho, [es.] (Http://en.wikipedia.org/wiki/E-mail_address#Valid_email_addresses)) Supongo que la codificación porcentual es tu amigo, entonces –

+2

Y 'mailto' es muy antiguo. El 90% de los visitantes de su sitio usan no su correo del sistema, sino servicios de correo como gmail. Un enlace a la forma de contacto es muy fácil de usar –

Respuesta

18

Percent encoding la cadena es necesaria para IE y supongo que funcionará en todos los navegadores. De this MSDN document:

Windows Internet Explorer 7 y posterior. Debe codificar por ciento todos los caracteres reservados para URL dentro de una dirección mailto:. Por ejemplo, el signo de número (#) se usa como un identificador de fragmento en las URL. Al procesar una dirección como some#[email protected], Internet Explorer solo copia la parte hasta el signo de número en el cliente de correo; la porción de fragmento que incluye el signo de número se ignora. Este comportamiento es por diseño.

por lo que necesita

<a href="mailto:a%26b_admin%40xyz.com"> 

Como se ha dicho, espero una dirección codificada por ciento funcionará en todos los navegadores, pero no sé a ciencia cierta. Puedo confirmar que funciona con Chrome y Thunderbird.

+0

You rock, Pekka. – Konerak

+1

Esta línea de JavaScript convertirá los símbolos y símbolos para que no tenga que hacerlo a mano: 'var emailFriendlyUrl = currentUrl.replace (/ &/g, '% 26');'. –

Cuestiones relacionadas