Используйте в качестве кнопки и запускайте mailto при нажатии

Я создаю пользовательскую кнопку на своей веб-странице, которая на самом деле является <div>, Я хочу вызвать mailto при нажатии кнопки. Каков наилучший выход?

Я попытался вызвать функцию javascript с помощью-onClick, которая выглядит так -

function foo(){
    window.open("mailto:xyz@abc.com");
}

но сначала открывается новая вкладка в Chrome, а затем запрашивается соответствующее приложение для отправки электронной почты. Этот опыт отличается от того, что мы обычно получаем, когда мы просто сделать <a href=mailto:.....> in ФОРМАТ HTML.

Я также могу создать новый элемент документа в функции JS и имитировать такой щелчок -

function sendEmail() {
    var mail = 'mailto:contact@test.com';
    var a = document.createElement('a');
    a.href = mail;
    a.click();
};

но я не слишком уверен, если это правильный путь! У кого-нибудь есть лучшее решение?

5 ответов


используйте якорный тег, но измените свойство display на block:

HTML-код

<a class="mailto" href="mailto:contact@test.com">Mail</a>

в CSS

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

попробуйте это и скажите мне, если работает. Если нет, я удалю ответ.

<script>
function sendEmail() 
{
    window.location = "mailto:xyz@abc.com";
}
</script>
<div onclick="sendEmail();">Send e-mail</div>

очень поздно на вечеринку я знаю, но как насчет объединения этих ответов в нечто более простое и практичное:

<div class="button" onclick="location.href='mailto:xyz@abc.com';">Send E-Mail</div>

попробуйте эту функцию и html. Он откроет новый почтовый клиент.

<div onclick="doMail();">


function doMail() {

    var email ="xyz@abc.com";
    location.href = "mailto:"+email;
}

<div onclick="mailtoperformingFunction('inner');" id="divbutton">

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