web-dev-qa-db-ja.com

<div>をボタンとして使用し、クリックされたときにmailtoをトリガーする

ウェブページに実際に<div>、ボタンがクリックされたときにmailtoをトリガーしたい。最善の方法は何ですか?

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

function foo(){
    window.open("mailto:[email protected]");
}

しかし、それはChromeで新しいタブを開き、次に関連するアプリにメールを送信するように要求します。この経験は、単に<a href=mailto:.....> HTML。

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

function sendEmail() {
    var mail = 'mailto:[email protected]';
    var a = document.createElement('a');
    a.href = mail;
    a.click();
};

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

19
divyanshm

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

[〜#〜] html [〜#〜]

<a class="mailto" href="mailto:[email protected]">Mail</a>

[〜#〜] css [〜#〜]

.mailto{
  display:block;
  width:100px;
  height:20px;
}
13
George

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

<script>
function sendEmail() 
{
    window.location = "mailto:[email protected]";
}
</script>
<div onclick="sendEmail();">Send e-mail</div>
26
Tony

私が知っているパーティーに非常に遅れましたが、これらの答えをよりシンプルで実用的なものに結合することについてはどうですか:

<div class="button" onclick="location.href='mailto:[email protected]';">Send E-Mail</div>
15
Chris Kempen

この関数とhtmlを試してください。新しいメールクライアントを開きます。

<div onclick="doMail();">


function doMail() {

    var email ="[email protected]";
    location.href = "mailto:"+email;
}
4
userStack

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

<script>
function sendEmail() 
{
    window.location.assign("mailto:[email protected]");
}
</script>
<div onclick="sendEmail();">Send e-mail</div>

@Tonyはassignが追加されただけで同じアプローチを使用しています。

2
Rick

これを試して :

<div class="button" href="javascript: void(0)" onclick="location.href='mailto:[email protected]';">Click to Send email</div>
0
Kiran KV
<div onclick="mailtoperformingFunction('inner');" id="divbutton">

<script type="text/javascript">
function mailtoperformingFunction()
{
}
</script>
0