Me gustaría invocar un enlace mailto desde JavaScript; es decir, me gustaría un método que me permita abrir el cliente de correo electrónico en la PC del usuario, exactamente como si hubieran hecho clic en un enlace mailto normal.
¿Cómo puedo hacer esto?
javascript
jquery
mailto
Justin
fuente
fuente
<button onclick="window.open('mailto:KingRider<[email protected]>');">Contact me</button>
Respuestas:
Puedes usar
window.location.href
aquí, así:window.location.href = "mailto:[email protected]";
fuente
window.location.href = 'mailto:[email protected]&subject=Hello there&body=This is the body';
. No?
y no&
, solo&
Puede evitar el problema de la página en blanco discutido anteriormente usando en su lugar .click () con un enlace en la página:
document.getElementById('mymailto').click(); ... <a href="mailto:...." id="mymailto" style="display:none"></a>
fuente
la respuesta de trabajo para mí, probada en Chrome, IE y Firefox junto con Outlook fue esta
window.location.href = 'mailto:[email protected]?subject=Hello there&body=This is the body';
%0d%0a
es el símbolo de nueva línea del cuerpo del correo electrónico en un enlace mailto%20
es el símbolo de espacio que debería usarse, pero también me funcionó con el espacio normalfuente
De hecho, existe la posibilidad de evitar la página en blanco.
Descubrí que simplemente puede insertar un iframe con el enlace mailto en el dom. Esto funciona en Firefox / Chrome e IE actuales (también IE mostrará un breve cuadro de diálogo de confirmación).
Usando jQuery, obtuve esto:
var initMailtoButton = function() { var iframe = $('<iframe id="mailtoFrame" src="mailto:[email protected]" width="1" height="1" border="0" frameborder="0"></iframe>'); var button = $('#mailtoMessageSend'); if (button.length > 0) { button.click(function(){ // create the iframe $('body').append(iframe); //remove the iframe, we don't need it any more window.setTimeout(function(){ iframe.remove(); }, 500); }); } }
fuente