Rufen Sie einen Mailto-Link mit JQuery / JavaScript auf / klicken Sie darauf


81

Ich möchte einen Mailto- Link über JavaScript aufrufen - das heißt, ich möchte eine Methode, mit der ich den E-Mail-Client auf dem PC des Benutzers öffnen kann, genau so, als hätten sie auf einen normalen Mailto-Link geklickt.

Wie kann ich das machen?



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

Antworten:


138

Sie können window.location.hrefhier wie folgt verwenden:

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

3
und wie würde ich einen Körper anhängen? mailto: address@dmail.com? body = myBody und mailto: address@dmail.com& myBody funktioniert nicht für mich ...
Max

@ jipiboily, kannst du bitte mehr erklären? Welchen Browser haben Sie ausprobiert und es hat nicht funktioniert?
Adi

@Adnan, soweit ich mich erinnere, funktioniert es nicht mit Opera und vielleicht mehr Browsern. Abhängig von Ihren Anforderungen können Sie dieses Problem möglicherweise umgehen.
jipiboily

@Rolf Ich habe gerade im neuesten Chromstall getestet und arbeite immer noch.
Nick Craver

9
Max, du hast das wahrscheinlich herausgefunden, aber für zukünftige Leser : window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';. Nicht ?und nicht &amp;, nur&
Cssyphus

9

Sie können das oben beschriebene Problem mit leeren Seiten vermeiden, indem Sie stattdessen .click () mit einem Link auf der Seite verwenden:

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>

Ich habe Folgendes versucht: `function Call () {document.getElementById ('mymailto'). Click (); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a> `und der neue Tab wird weiterhin geöffnet.
Yoda

3

Die funktionierende Antwort für mich, getestet in Chrome, IE und Firefox zusammen mit Outlook, war diese

window.location.href = 'mailto:address@dmail.com?subject=Hello there&body=This is the body';

%0d%0a ist das neue Zeilensymbol des E-Mail-Textes in einem Mailto-Link

%20 ist das Leerzeichen, das verwendet werden sollte, aber es hat auch bei normalem Leerzeichen für mich funktioniert


1

Tatsächlich besteht die Möglichkeit, die leere Seite zu vermeiden.

Ich habe herausgefunden, dass Sie einfach einen Iframe mit dem Mailto-Link in den Dom einfügen können. Dies funktioniert unter aktuellem Firefox / Chrome und IE (auch der IE zeigt einen kurzen Bestätigungsdialog an).

Mit jQuery habe ich Folgendes erhalten:

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

        });
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.