Pergunta sobre html, mailto, javascript – mailto usando javascript

40

Eu quero abrir um novo modelo de correio do Outlook com o 'Para endereço' sempre que um usuário clica em uma imagem. Eu retornei meu código em uma página html (linkada com a imagem), sempre que ele carrega o javascript deve abrir um novo template de email. Mas a funcionalidade não está funcionando. Por favor, deixe-me saber o que está errado no meu código.

<code>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()
</code>
window é uma variável somente leitura. Rob W
É por causa de um bloqueador de pop-ups? Ramesh

Sua resposta

5   a resposta
6

on the fly' usando algo como:

<code>    var mail = document.createElement("a");
    mail.href = "mailto:[email protected]";
    mail.click();
</code>

Isso é redirecionado pelo navegador para algum cliente de email instalado na máquina sem perder o conteúdo da janela atual ... e você não precisaria de nenhuma API como 'jQuery'.

window.open('mailto') normalmente deixa uma aba em branco aberta com mailto no URL para que assim pareça muito mais agradável Unknownweirdo
58

. Protocolos que não retornam dados HTTP para o navegador (mailto:, irc://, magnet:, ftp:// (<- depende de como ele é implementado, normalmente o navegador tem um cliente FTP integrado)) pode ser consultado na mesma janela sem perder o conteúdo atual. No seu caso:

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

Ou apenas diretamente

<code><body onload="javascript: window.location.href='mailto:[email protected]';">
</code>
Deve-se observar que o navegador ainda acionará oonbeforeunload-Evento:window.onbeforeunload = () => {console.log("onbeforeunload")}; window.location.href = "mailto:[email protected]"; D B
21

código em jsFiddle. Ele usa o jQuery para modificar o href do link. Você pode usar qualquer outra biblioteca em seu lugar. Deve funcionar.

HTML

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

JS

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

ATUALIZAR

Outro exemplo de código, se o id for conhecido apenas durante o evento click

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

mas não é estritamente necessário):

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

Quando os usuários clicam no link, substituímos o atributo href do elemento clicado.

Tenha cuidado, não impeça o comportamento padrão (event.preventDefault), devemos deixar fazer isso porque acabamos de substituir o href para onde ir

Eu acho que os robôs não podem ver, o endereço está protegido contra spams.

4

Você pode usar o simplesmailto, veja abaixo a marcação simples.

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

Uma vez clicado, ele abrirá seu Outlook ou qualquer cliente de e-mail que você tenha configurado.

Ei Grant, obrigado por editar minha terminologia para ser usada. Estou com pressa também tipo. Allan

Perguntas relacionadas