JavaScriptから mailto リンクを呼び出したい-つまり、ユーザーが通常のmailtoをクリックしたかのように、ユーザーのPCでメールクライアントを開くことができるメソッドが欲しいリンク。
これどうやってするの?
次のように、ここでwindow.location.href
を使用できます。
window.location.href = "mailto:[email protected]";
代わりに、ページ上のリンクで.click()を使用することにより、上記の空白ページの問題を回避できます。
document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>
クロムでテストされた私のための実用的な答えは、IEであり、Outlookと一緒にfirefoxはこれでした
window.location.href = 'mailto:[email protected]?subject=Hello there&body=This is the body';
%0d%0a
は、mailtoリンクの電子メール本文の改行記号です
%20
は使用すべきスペース記号ですが、通常のスペースでも同様に機能しました
実際には、空のページを回避する可能性があります。
私は、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);
});
}
}