2016-07-09 6 views
-2

Ich habe ein Icon, das beim Anklicken eine mailto: URL auslöst. Scheint einfach, aber es funktioniert nicht. Beim Debuggen klicke ich auf das Icon und der Event-Handler feuert und führt den darin enthaltenen Code aus, tut dann aber nichts. Warum funktioniert das nicht?mailto: URL funktioniert nicht in jQuery-gebundenem Event-Handler

<i id="email-icon" class="fa fa-envelope"></i> 
$("#email-icon").on("click", function() { 
    window.location.href = "mailto:[email protected]"; 
}); 

Ich habe das Gefühl, das Ereignis wird immer irgendwie in jQuery abgesagt?

+0

scheint gut für mich zu arbeiten. https://jsfiddle.net/RoryMcCrossan/213zs2w9/ haben Sie irgendwelche Fehler in die Konsole oder ein anderer Code, der das Ereignis stört? B. an ein Elternelement angehängt. Haben Sie einen Mail-Client auf dem Computer installiert? –

+0

jQuery hat keinen Einfluss darauf, was passiert, wenn Sie location.href zuweisen. Der Browser hat ein Mitspracherecht, und ich kann sehen, warum es das nicht mögen würde. –

+0

@RoryMcCrossan: Ich habe noch nichts in Chrome probiert. Welchen Browser benutzen Sie zufällig? – razaross444

Antwort

0

Also, meine eigene Frage zu beantworten ....

Es gab eigentlich nichts falsch mit meinem Code. Das Problem lag darin, wie meine neue Maschine konfiguriert wurde!

Beim Betrachten meiner Standardprogramme in der Systemsteuerung habe ich gesehen, dass Chrome als Standardprogramm für das MAILTO-Protokoll eingestellt wurde. :-(

Ich habe Outlook den Handler für das Protokoll und dann funktionierte es wie erwartet. Nicht sicher, wie das passiert ist, aber ich dachte, es für den Fall, jemand schreiben würde sonst dieses Problem hat die Straße hinunter.

Vielen Dank an Rory McCrossan zur Untersuchung

0

versuchen es Link zu erstellen.

$("#email-icon").on("click", function() { 
    var link = "mailto:[email protected]"; 
    var obj = $("<a href=\"" + link + "\" target=\"_new\"><span></span></a>"); 
    obj.appendTo("body"); 
    obj.children("span:eq(0)").trigger("click"); 
    obj.remove(); 
}); 
+0

Ich habe dies versucht und öffnet eine neue Registerkarte auf Chrom, die auf die Navigationsleiste setzt: mailto: [email protected] und führt keine Aktion –

+0

Hallo Sorry für die Verzögerung, Sie versucht zu entfernen/ohne das Attribut target = \ "_Neu\" – toto