Я хотів би викликати поштове посилання з JavaScript - тобто я хотів би метод, який дозволяє мені відкривати поштовий клієнт на ПК користувачів, точно так, як ніби вони натискали на звичайне посилання поштового зв’язку.
Як я можу це зробити?
Я хотів би викликати поштове посилання з JavaScript - тобто я хотів би метод, який дозволяє мені відкривати поштовий клієнт на ПК користувачів, точно так, як ніби вони натискали на звичайне посилання поштового зв’язку.
Як я можу це зробити?
<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
Відповіді:
Ви можете використовувати window.location.href
тут ось так:
window.location.href = "mailto:address@dmail.com";
window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';
. Ні ?
і ні &
, просто&
Ви можете уникнути обговорення проблеми з порожньою сторінкою, замість цього скориставшись .click () із посиланням на сторінці:
document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>
робоча відповідь для мене, перевірена на chrome, IE та firefox разом із прогнозом
window.location.href = 'mailto:address@dmail.com?subject=Hello there&body=This is the body';
%0d%0a
- це новий символ рядка тіла електронної пошти у посиланні mailto
%20
- це символ пробілу, який слід використовувати, але він спрацював і для мене із звичайним пробілом
Насправді існує можливість уникнути порожньої сторінки.
Я з’ясував, ви можете просто вставити iframe із посиланням mailto у dom. Це працює на поточних Firefox / Chrome та IE (також IE відобразить коротке діалогове вікно підтвердження).
Використовуючи jQuery, я отримав таке:
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);
});
}
}