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


82

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

これどうやってするの?



1
試してみてください<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
KingRider 2016

回答:


138

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

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

3
ボディを追加するにはどうすればよいですか??のmailto:address@dmail.com体=はmyBodyとのmailto:address@dmail.com&はmyBodyは私のために仕事をしません...
マックス

@jipiboily、もっと説明してもらえますか?どのブラウザを試しましたが、機能しませんでしたか?
アディ

@Adnanは、Operaやその他のブラウザでは機能しないことを覚えています。ニーズによっては、その問題を回避できる場合があります。
jipiboily 2012年

@Rolf最新のChrome安定版でテストしましたが、まだ機能しています。
NickCraver

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> `でも、新しいタブが開きます。
ヨーダ

3

クローム、IE、Firefoxでテストされた私にとっての実用的な答えは、見通しとともにこれでした

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

        });
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.