Используйте <div> в качестве кнопки и запускайте почтовый ящик при нажатии

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

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

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

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

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

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

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

Ответ 1

Используйте тег привязки, но измените свойство отображения на блокировку:

HTML

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

CSS

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

<div onclick="doMail();">


function doMail() {

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

Ответ 5

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

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

Ответ 6

Попробуй это:

<div class="button" href="javascript: void(0)" onclick="location.href='mailto:[email protected]';">Click to Send email</div>