使用JQuery / JavaScript调用/单击mailto链接


81

我想从JavaScript调用mailto链接-也就是说,我希望有一种方法可以让我在用户PC上打开电子邮件客户端,就像他们单击普通的mailto链接一样。

我怎样才能做到这一点?



1
试试<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
KingRider

Answers:


138

您可以window.location.href在这里使用,如下所示:

window.location.href = "mailto:address@dmail.com";

3
以及我该如何附加尸体?邮寄地址:address@dmail.com体= myBody和邮寄地址:address@dmail.com& myBody不工作对我来说...
马克斯

@jipiboily,能否请您解释更多?您尝试使用哪种浏览器,但无法使用?
阿迪

我记得@Adnan不适用于Opera和更多浏览器。根据您的需求,您也许可以解决该问题。
jipiboily 2012年

@Rolf我刚刚在最新的Chrome稳定版中进行了测试,但仍能正常工作。
尼克·克雷弗

9
马克斯,您可能已经想出了这一点,但对于将来的读者:window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';。不?,不是&amp;,只是&
cssyphus 2015年

9

您可以通过在页面上使用带有链接的.click()来避免上面讨论的空白页问题:

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>

我试过这个:`function Call(){document.getElementById('mymailto')。click(); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a>`,新标签仍会打开。
Yoda 2014年

3

对我来说,在chrome,IE和firefox中测试过的有效答案以及Outlook是

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

%0d%0a 是mailto链接中电子邮件正文的新行符号

%20 是应该使用的空格符号,但对于普通空格也对我有用


1

实际上,有可能避免空白页。

我发现,您只需将带有mailto链接的iframe插入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);

        });
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.