2011-12-18 40 views
12

Tengo una imagen que cuando se haga clic, quiero enlazar a un mailto:Abra la href mailto enlace en una nueva pestaña/ventana

<a id="mailto" href="mailto:[email protected]" target="_newtab" > 
     <img src="@Url.Content("~/Content/HomePage/email.png")" alt="email" /></a> 

Sin embargo, en la actualidad, una vez su clic, se pondrá en marcha la opción de correo electrónico a elija una aplicación de mailto, y una vez que elija, el enlace de mailto se abrirá en la pestaña actual. Esto hará que el usuario abandone la aplicación.

Por lo tanto, deseo que la página que se envía por correo electrónico (por gmail, yahoo, etc.) se abra en una pestaña nueva o en una ventana. ¿Alguna idea de cómo hacer esto? Intenté tanto target = "_ newtab" y target = "_ blank" pero ambos no funcionaron.

Cualquier ayuda será muy apreciada .. Gracias ...

(método jQuery también es aceptable si no hay otra manera, gracias)

+1

"Quiero que el enlace de mailto se abra en una pestaña nueva o en una ventana" - ¿qué espera exactamente que aparezca en esta nueva pestaña o ventana? Por favor sea tan específico como sea posible. – evan

+0

la página para enviar correos electrónicos, ya sea gmail, yahoo, etc. – shennyL

+1

Esto no es posible. Lo siento. – jamieb

Respuesta

7

mailto llama al cliente de correo electrónico predeterminado usuarios. No abre una ventana o pestaña en ninguna instancia. Si desea usar una ventana o pestaña, necesita configurar un formulario y permitir que el formulario se abra en su ventana/pestaña. Por supuesto, deberá configurar el formulario para enviar correos electrónicos con cualquier método disponible en su servidor.

+16

Esto puede haber sido cierto en 2011, pero ya no es cierto. Puede abrir clientes de correo como Gmail en una nueva pestaña usando target = "_ blank". Desafortunadamente, eso no es suficiente ya que lanzará una pestaña en blanco para las personas que usan clientes independientes. –

+1

¿Y cómo abre Outlook (el cliente de correo electrónico más popular) en una pestaña? Siempre ha sido posible abrir servicios de correo electrónico basados ​​en web en una ventana o pestaña. Pero los servicios de correo electrónico basados ​​en la web no son la mayoría de los clientes de correo electrónico. – Scott

+2

Esta respuesta no está actualizada, algunos clientes de correo se abren en pestañas como gmail o inbox –

20

esta información no está actualizada, ahora es posible hacerlo, creo, ya que gmail y otros ahora funcionan a través de enlaces de navegador. Sin embargo, existe el problema de que solo desea que se abra en una nueva pestaña si NO se abre en un cliente de correo del sistema y abrir en una nueva pestaña si es un cliente de correo web; de lo contrario, los usuarios de Outlook verán aparecer una pestaña en blanco. lo cual es desorientador, especialmente porque son usuarios de Outlook.

+0

Mi awnser se basa en su publicación, acabo de agregar el código. Pero mereces el crédito. –

-1

¿Has probado 'medio clic' ("Abrir en una pestaña nueva")? Funciona para mí

(http://forums.mozillazine.org/viewtopic.php?f=7&t=1842595)

aunque parece particularmente extraño para pedir al usuario haga clic en Medio

De todos modos he encontrado una pseudo solución que parece funcionar en FF 25/Chrome 35

1.- Configurar el enlace de algo como esto:

<a href="javascript:void()" 
class="mailToLink" 
data-mail="[email protected]">[email protected] </a> 

2.- Uso de JavaScript (con JQ uery en el ejemplo) la configuración de un evento onlclick como:

$('.mailToLink').on('click', function(){ 
     mailto=$(this).data('mail'); 
     w=window.open('','_blank','',true); 
     w.location.href='mailto:'+mailto; 
     w.focus(); 
    }); 

Esto abre una ventana/pestaña nueva pieza en bruto y más tarde cambia su ubicación, por lo que el manejador de protocolo de correo es incapaz de actuar toto hasta que la nueva ventana ya está abierta

No probado con el cliente de correo local (Outlook et al.)

11

Responde esta respuesta en Open the href mailto link in new tab/window.

En este momento, los nuevos navegadores admiten algunas interfaces de correo web (como Gmail, Yahoo Mail, AoL, etc.).

Así que simplemente podemos abrir una nueva ventana (Admite un navegador más antiguo, los nuevos navegadores solo abrirán una nueva pestaña) y agregar un repliegue (en caso de usuarios que no sean javascript) usando preventDefault y la redirección de enlace predeterminada.

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation

https://developer.mozilla.org/es/docs/DOM/event.preventDefault

https://developer.mozilla.org/en-US/docs/Web/API/Window.open

así:

<a onClick="javascript:window.open('mailto:[email protected]', 'mail');event.preventDefault()" href="mailto:[email protected]">Send a e-mail</a>

http://jsfiddle.net/cNUNP/

Crédito a https://stackoverflow.com/a/9880404/1107020

Supongo que eso es todo.

Saludos, Marcos.

+1

No funcionó para mí en Firefox 40. – Jabba

+0

el violín trabajó en FF43 – kn00tcn

11

No necesita Javascript/Jquery para esto. Un enlace estándar funciona (excepto Firefox v30 + debido a un error, ver abajo).

<a href="mailto:[email protected]" target="_blank"> 

A partir de Firefox 30, no funciona en Firefox debido a una bug. Se abre en la misma pestaña Y reemplaza el historial, por lo que retroceder no lo llevará de vuelta a la página donde estaba el enlace mailto :.

+0

Esto es correcto. Estoy tratando de encontrar una solución. _blank hace exactamente lo que dice Costa. ¿Cómo podemos eludir y abrir la página de Gmail en una nueva pestaña o posiblemente en una ventana emergente de JavaScript? – OldDogLearningNewPerlTricks

+2

Solo por la historia, es 8 meses después y la falla aún existe. – Leonidas

+2

actualización de 2016: error aún no se ha solucionado. Originalmente se abrió en 2011, por lo que es dudoso que esto se solucione a menos que el error reciba una tonelada de votos acumulados (pista, sugerencia): https://bugzilla.mozilla.org/show_bug.cgi?id=646552 – Costa

-1

Hay un truco barato html a este problema .....

El enlace en una página ...

<a href="/mailto.html" target="_blank">Mail</a> 

En mailto.html ....

<meta HTTP-EQUIV="REFRESH" content="0; url=mailto:[email protected]"> 

If nothing pops up click.....<a href="mailto:[email protected]">Mail!</a> 

_blank abre una nueva pestaña/ventana y la metaetiqueta hace el resto. enlace como curso de reserva.

Cuestiones relacionadas