35

Web ページにカスタム ボタンを作成していますが、これは実際には であり<div>、ボタンがクリックされたときに mailto をトリガーしたいと考えています。最善の方法は何ですか?

次のような-onClickを使用してjavascript関数を呼び出してみました-

function foo(){
    window.open("mailto:xyz@abc.com");
}

ただし、最初に Chrome で新しいタブが開き、関連するアプリにメールを送信するように求められます。<a href=mailto:.....>このエクスペリエンスは、単純に HTML で実行する場合に一般的に得られるものとは異なります。

JS 関数で新しいドキュメント要素を作成して、このようなクリックをシミュレートすることもできます -

function sendEmail() {
    var mail = 'mailto:contact@test.com';
    var a = document.createElement('a');
    a.href = mail;
    a.click();
};

しかし、それが正しい方法かどうかはわかりません。誰もがより良い解決策を持っていますか?

4

8 に答える 8

49

これを試して、うまくいくかどうか教えてください。(そうでない場合は、回答を削除します。)

<script>
function sendEmail() 
{
    window.location = "mailto:xyz@yourapplicationdomain.com";
}
</script>
<div onclick="sendEmail();">Send e-mail</div>

パラメータsubjectbodyを渡すことは可能ですが、テキストをフォーマットすることはできないと思います:

<a href='mailto:xyz@yourapplicationdomain.com?subject=Me&body=Hello!'>EMAIL</a>
于 2013-10-28T16:22:08.097 に答える
24

私が知っているパーティーには非常に遅れていますが、これらの回答を組み合わせて、よりシンプルで実用的なものにするのはどうでしょうか。

<div class="button" onclick="location.href='mailto:xyz@abc.com';">Send E-Mail</div>
于 2015-09-01T15:32:56.470 に答える
22

アンカー タグを使用しますが、表示プロパティをブロックに変更します。

HTML

<a class="mailto" href="mailto:contact@test.com">Mail</a>

CSS

.mailto{
  display:block;
  width:100px;
  height:20px;
}
于 2013-10-28T16:52:25.717 に答える
8

これは私のために働いた:

<script>
function sendEmail() 
{
    window.location.assign("mailto:xyz@abc.com");
}
</script>
<div onclick="sendEmail();">Send e-mail</div>

@Tony は同じアプローチを使用しましたassignが、追加されました。

于 2019-03-12T09:25:40.903 に答える
0
<div onclick="mailtoperformingFunction('inner');" id="divbutton">

<script type="text/javascript">
function mailtoperformingFunction()
{
}
</script>
于 2013-10-28T16:23:11.977 に答える