web-dev-qa-db-ja.com

JQuery / JavaScriptを使用してmailtoリンクを呼び出す/クリックする

JavaScriptから mailto リンクを呼び出したい-つまり、ユーザーが通常のmailtoをクリックしたかのように、ユーザーのPCでメールクライアントを開くことができるメソッドが欲しいリンク。

これどうやってするの?

73
Justin

次のように、ここでwindow.location.hrefを使用できます。

window.location.href = "mailto:[email protected]";
125
Nick Craver

代わりに、ページ上のリンクで.click()を使用することにより、上記の空白ページの問題を回避できます。

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

クロムでテストされた私のための実用的な答えは、IEであり、Outlookと一緒にfirefoxはこれでした

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

%0d%0aは、mailtoリンクの電子メール本文の改行記号です

%20は使用すべきスペース記号ですが、通常のスペースでも同様に機能しました

2
Toskan

実際には、空のページを回避する可能性があります。

私は、mailtoリンクを含むiframeを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);

        });
    }
}
0
s34n