Chciałbym wywołać łącze mailto z JavaScript - to znaczy, że chciałbym metodę, która pozwoli mi otworzyć klienta poczty e-mail na komputerze użytkownika, dokładnie tak, jakby kliknęli zwykły link mailto.
Jak mogę to zrobić?
Chciałbym wywołać łącze mailto z JavaScript - to znaczy, że chciałbym metodę, która pozwoli mi otworzyć klienta poczty e-mail na komputerze użytkownika, dokładnie tak, jakby kliknęli zwykły link mailto.
Jak mogę to zrobić?
<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
Odpowiedzi:
Możesz użyć window.location.href
tutaj, w ten sposób:
window.location.href = "mailto:address@dmail.com";
window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';
. Nie ?
i nie &
tylko&
Możesz uniknąć omawianego powyżej problemu z pustą stroną, używając zamiast tego .click () z linkiem na stronie:
document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>
działającą odpowiedzią dla mnie, przetestowaną w Chrome, IE i Firefoxie razem z Outlookiem, było to
window.location.href = 'mailto:address@dmail.com?subject=Hello there&body=This is the body';
%0d%0a
to symbol nowej linii treści wiadomości e-mail w łączu mailto
%20
to symbol przestrzeni, który powinien być używany, ale zadziałał również w przypadku normalnej przestrzeni
Właściwie istnieje możliwość uniknięcia pustej strony.
Dowiedziałem się, że możesz po prostu wstawić ramkę iframe z linkiem mailto do domeny. Działa to na bieżących przeglądarkach Firefox / Chrome i IE (również IE wyświetli krótkie okno dialogowe potwierdzenia).
Używając jQuery, otrzymałem to:
var initMailtoButton = function()
{
var iframe = $('<iframe id="mailtoFrame" src="mailto:name@domain.com" 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);
});
}
}