it-swarm.com.de

Verwenden Sie <div> als Schaltfläche und lösen Sie eine Mailto aus, wenn Sie darauf klicken

Ich erstelle auf meiner Webseite einen benutzerdefinierten Button, der eigentlich ein <div> ist. Ich möchte ein mailto auslösen, wenn der Button angeklickt wird. Was ist der beste Ausweg?

Ich habe versucht, eine Javascript-Funktion using-onClick aufzurufen, die so aussieht - 

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

Dadurch wird jedoch zunächst eine neue Registerkarte in Chrome geöffnet. Anschließend wird die entsprechende App aufgefordert, die E-Mail zu versenden. Diese Erfahrung unterscheidet sich von dem, was wir normalerweise erhalten, wenn wir einfach einen <a href=mailto:.....> in HTML machen.

Ich kann auch ein neues Dokumentelement in der JS-Funktion erstellen und einen Klick wie folgt simulieren: 

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

Aber ich bin mir nicht sicher, ob das der richtige Weg ist! Hat jemand eine bessere Lösung?

14
divyanshm

Verwenden Sie ein Ankertag, ändern Sie jedoch die Anzeigeeigenschaft in blockieren:

HTML

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

CSS

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

Versuchen Sie es und sagen Sie mir, ob es funktioniert. Wenn nicht, werde ich die Antwort löschen.

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

Ich weiß sehr spät zu der Party, aber was ist, wenn man diese Antworten in etwas Einfacheres und Praktischeres kombiniert:

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

Versuchen Sie diese Funktion und HTML. Es wird ein neuer E-Mail-Client mit geöffnet.

<div onclick="doMail();">


function doMail() {

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

Das hat bei mir funktioniert:

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

@Tony hat den gleichen Ansatz verwendet, nur wurde assign hinzugefügt.

2
Rick

Versuche dies :

<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