Вызвать / щелкнуть ссылку на почту с помощью JQuery / JavaScript - PullRequest
73 голосов
/ 06 октября 2010

Я бы хотел вызвать ссылку mailto из JavaScript - то есть мне нужен метод, который позволяет мне открывать почтовый клиент на ПК пользователя, точно так же, как если бы он нажал наобычная ссылка mailto.

Как я могу это сделать?

Ответы [ 4 ]

125 голосов
/ 06 октября 2010

Вы можете использовать window.location.href здесь, вот так:

window.location.href = "mailto:address@dmail.com";
9 голосов
/ 02 января 2013

Вы можете избежать проблемы с пустой страницей, рассмотренной выше, вместо этого используя .click () со ссылкой на страницу:

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>
2 голосов
/ 26 января 2018

рабочий ответ для меня, протестированный в chrome, IE и firefox вместе с outlook, был таким:

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

%0d%0a - это символ новой строки тела письма в ссылке mailto

%20 - это символ пробела, который должен использоваться, но он работал и для меня с обычным пробелом

0 голосов
/ 24 апреля 2015

На самом деле, есть возможность избежать пустой страницы.

Я обнаружил, что вы можете просто вставить 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);

        });
    }
}
...