2012-04-16 40 views
33

Quiero abrir una nueva plantilla de correo de Outlook con 'A dirección' siempre que un usuario haga clic en una imagen. He devuelto mi código en una página html (vinculada a la imagen), cada vez que se carga, javascript debe abrir una nueva plantilla de correo. Pero la funcionalidad no funciona. Por favor, hágamelo saber lo que está mal en mi código.mailto usando javascript

body onLoad="redirect()" 

script language="JavaScript" 

function redirect() 

     var email = "[email protected]" 
     var mailto_link = 'mailto:' + email 
     window = window.open(mailto_link, 'emailWindow') 
     if (window && window.open && !window.closed)   
      window.close() 
+1

'window' es una variable de solo lectura. –

+1

¿Es por un bloqueador de ventanas emergentes? – Ramesh

Respuesta

20

Encuentra el code in jsFiddle. Utiliza jQuery para modificar el href del enlace. Puede usar cualquier otra biblioteca en su lugar. Deberia de funcionar.

HTML

<a id="emailLnk" href="#"> 
    <img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png"> 
</a> 

JS

$(document).ready(function() { 
    $("#emailLnk").attr('href',"mailto:[email protected]"); 
});​ 

ACTUALIZACIÓN

Otro ejemplo de código, si el ID es conocido sólo durante el evento click

$(document).ready(function() { 
    $("#emailLnk").click(function() 
    { 
     alert('h'); 
     document.location.href = "mailto:[email protected]"; 
    }); 
});​ 
51

No hay necesidad de jQuery. Y no es necesario abrir una nueva ventana. Los protocolos que no devuelven datos HTTP al navegador (mailto:, irc://, magnet:, ftp:// (< - depende de cómo se implemente, normalmente el navegador tiene un cliente FTP incorporado)) se pueden consultar en la misma ventana sin perder el contenido actual En su caso:

function redirect() 
{ 
    window.location.href = "mailto:[email protected]"; 
} 
<body onload="javascript: redirect();"> 

O simplemente directamente

<body onload="javascript: window.location.href='mailto:[email protected]';"> 
4

simplemente he utilizado este código Javascript (jQuery, pero no es estrictamente necesario):

$("#button").on("click", function(event) { 
     $(this).attr('href', 'mailto:[email protected]?subject=hello'); 
    }); 

Cuando los usuarios hacen clic en el enlace, reemplazamos el atributo href del elemento cliqueado.

Tenga cuidado de no impedir que el comportamiento por defecto (event.preventDefault), hay que dejar que lo haga, ya que acaba de sustituir el href dónde ir

Creo que los robots no pueden verlo, la dirección es protegido de spams.

3

Puede usar el simple mailto, vea a continuación el marcado simple.

<a href="mailto:[email protected]">Click here to mail</a> 

Una vez hecho clic, abrirá su Outlook o el cliente de correo electrónico que haya configurado.

+0

Hola Grant, gracias por editar mi terminología para usar. Tengo prisa también tipo. – Allan