Javascript location.href to mailto triggers a GET

2019-05-03 06:18发布

问题:

I have a button that triggers the following javascript function:

function sendEmail() {
    var mail = 'mailto:contact@test.com';
    location.href = mail;
};

In Chrome, this function triggers an HTTP GET to 'mailto:contact@test.com', 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?

回答1:

It works for me. But you can try this

function sendEmail() {
    var mail = 'mailto:contact@test.com';
    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
};