Wywołaj / kliknij łącze mailto za pomocą JQuery / JavaScript


82

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ć?



1
spróbuj<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
KingRider

Odpowiedzi:


138

Możesz użyć window.location.hreftutaj, w ten sposób:

window.location.href = "mailto:address@dmail.com";

3
i jak mam dołączyć ciało? mailto: address@dmail.com? body = myBody i mailto: address@dmail.com& myBody nie działa dla mnie ...
maks.

@jipiboily, czy możesz wyjaśnić więcej? Której przeglądarki wypróbowałeś i nie działa?
Adi

@Adnan z tego, co pamiętam, nie działa z Operą i może z większą liczbą przeglądarek. W zależności od potrzeb możesz obejść ten problem.
jipiboily

@Rolf Właśnie przetestowałem w najnowszej stabilnej wersji chrome, wciąż działa.
Nick Craver

9
Max, masz prawdopodobnie zorientowali to uwagę, ale dla przyszłych czytelników: window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';. Nie ?i nie &amp;tylko&
cssyphus

9

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>

Próbowałem tego: `function Call () {document.getElementById ('mymailto'). Click (); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a> `i nowa karta nadal się otwiera.
Yoda,

3

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


1

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);

        });
    }
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.