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ć?
javascript
jquery
mailto
Justin
źródło
źródło
<button onclick="window.open('mailto:KingRider<[email protected]>');">Contact me</button>
Odpowiedzi:
Możesz użyć
window.location.href
tutaj, w ten sposób:window.location.href = "mailto:[email protected]";
źródło
window.location.href = 'mailto:[email protected]&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>
źródło
działającą odpowiedzią dla mnie, przetestowaną w Chrome, IE i Firefoxie razem z Outlookiem, było to
window.location.href = 'mailto:[email protected]?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źródło
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:[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); }); } }
źródło