Search code examples
javascriptmailto

Javascript location.href to mailto triggers a GET HTTP that gets canceled in Chrome


I have a button that triggers the following javascript function:

function sendEmail() {
    var mail = 'mailto:[email protected]';
    location.href = mail;
};

In Chrome, this function triggers an HTTP GET to 'mailto:[email protected]', but the HTTP GET has a 'canceled' status in the Inspect Element Network tab, and the email client is not opened.

In IE, the email client also does not get opened.

How can I get the email client to open?


Solution

  • It works for me. But you can try this

    function sendEmail() {
        var mail = 'mailto:[email protected]';
        var a = document.createElement('a');
        a.href = mail;
        document.body.appendChild(a); // Add to the DOM
        a.click();
        document.body.removeChild(a); // Remove it back
    };