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?
javascript
jquery
mailto
Justin
quelle
quelle
<button onclick="window.open('mailto:KingRider<[email protected]>');">Contact me</button>
Antworten:
Sie können
window.location.href
hier wie folgt verwenden:window.location.href = "mailto:[email protected]";
quelle
window.location.href = 'mailto:[email protected]&subject=Hello there&body=This is the body';
. Nicht?
und nicht&
, nur&
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>
quelle
Die funktionierende Antwort für mich, getestet in Chrome, IE und Firefox zusammen mit Outlook, war diese
window.location.href = 'mailto:[email protected]?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 funktioniertquelle
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:[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); }); } }
quelle