Вызвать / щелкнуть ссылку на почту с помощью JQuery / JavaScript

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

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

 sibidiba28 дек. 2015 г., 05:37
Рабочий пример:jsfiddle.net/gaboom/h81qov5g
 KingRider28 июл. 2016 г., 15:15
пытаться<button onclick="window.open('mailto:KingRider<[email protected]>');">Contact me</button>

Ответы на вопрос(4)

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

Я обнаружил, что вы можете просто вставить iframe со ссылкой mailto в dom. Это работает на текущих Firefox / Chrome и IE (также IE покажет короткое диалоговое окно подтверждения).

Используя jQuery, я получил это:

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

        });
    }
}

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

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>
 Yoda06 сент. 2014 г., 21:49
Я попробовал это: `Функция Call () {document.getElementById ('mymailto'). Click (); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a> `и новая вкладка все еще открывается.

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

window.location.href = 'mailto:[email protected]?subject=Hello there&body=This is the body';

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

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

Решение Вопроса

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

window.location.href = "mailto:[email protected]";
 Nick Craver19 июл. 2013 г., 18:41
@Rolf Я только что проверил в последней стабильной Chrome, все еще работает.
 aloisdg14 нояб. 2017 г., 11:04
@ Adam работает на Chrome 57.0.2987.133 (64-разрядная версия)
 turbo2oh02 июн. 2014 г., 22:53
Я только что попробовал это в Chrome 35 и он работает нормально
 cssyphus16 дек. 2015 г., 01:05
Макс, ты, наверное, понял это, но для будущих читателей:window.location.href = 'mailto:[email protected]&subject=Hello there&body=This is the body';, Не? и не&amp;, просто&
 tartak13 июл. 2012 г., 20:35
действительно полезный ответ. благодарю вас.
 axel03 мар. 2015 г., 15:22
Опера 27.0 работает нормально
 GusDeCooL11 дек. 2017 г., 03:13
это не работает на Chrome :(
 Rolf19 июл. 2013 г., 18:18
Не работает с хромом
 Adam19 июл. 2013 г., 18:56
Так что не работает. Хром 28.0.1500.72 м (последняя стабильная версия)
 Max19 нояб. 2011 г., 10:40
и как бы я добавить тело? mailto: [email protected]? body = myBody и mailto: [email protected]&amp; myBody у меня не работает ...
 Yoda06 сент. 2014 г., 21:42
Можно ли это сделать, не открывая новую вкладку и не изменяя содержимое окна, видимого: window.location.href = "tel: +4812345"; ?
 jipiboily07 нояб. 2012 г., 17:31
это не будет работать на всех браузерах, будьте осторожны! ;)
 jipiboily19 нояб. 2012 г., 21:21
@ Adnan, насколько я помню, не работает с Opera и, возможно, с другими браузерами. В зависимости от ваших потребностей, вы можете обойти эту проблему.
 Adi19 нояб. 2012 г., 18:23
@jipiboily, не могли бы вы объяснить подробнее? Какой браузер вы пробовали, и он не работал?

Ваш ответ на вопрос