35

我正在我的网页上创建一个自定义按钮,它实际上是一个<div>,我想在单击该按钮时触发一个 mailto。最好的出路是什么?

我试过使用-onClick 调用一个javascript函数,看起来像这样 -

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

但这首先会在 Chrome 中打开一个新标签,然后要求相关应用发送电子邮件。这种体验不同于我们通常<a href=mailto:.....>在 HTML 中做 a 时所获得的体验。

我也可以在 JS 函数中新建一个文档元素,然后模拟这样的点击——

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

但我不太确定这是否是正确的方法!有人有更好的解决方案吗?

4

8 回答 8

49

试试这个,告诉我是否有效。(如果没有,我将删除答案。)

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

可以传递参数subjectbody,但我认为无法格式化文本:

<a href='mailto:xyz@yourapplicationdomain.com?subject=Me&body=Hello!'>EMAIL</a>
于 2013-10-28T16:22:08.097 回答
24

我知道的派对已经很晚了,但是将这些答案组合成更简单、更实用的东西怎么样:

<div class="button" onclick="location.href='mailto:xyz@abc.com';">Send E-Mail</div>
于 2015-09-01T15:32:56.470 回答
22

使用锚标记,但将显示属性更改为阻止:

HTML

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

CSS

.mailto{
  display:block;
  width:100px;
  height:20px;
}
于 2013-10-28T16:52:25.717 回答
8

这对我有用:

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

@Tony 使用了刚刚assign添加的相同方法。

于 2019-03-12T09:25:40.903 回答
6

试试这个函数和html。它将打开一个新的电子邮件客户端。

<div onclick="doMail();">


function doMail() {

    var email ="xyz@abc.com";
    location.href = "mailto:"+email;
}
于 2014-07-03T15:46:58.683 回答
6

为了从扫描网站以查找电子邮件的垃圾邮件机器人混淆您的电子邮件,您可以执行以下操作,

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

而不是“发送电子邮件”文本,您可以放置​​您实际电子邮件地址的图像(屏幕截图)以使其更加明显。

于 2020-02-01T13:53:59.107 回答
0
<div onclick="mailtoperformingFunction('inner');" id="divbutton">

<script type="text/javascript">
function mailtoperformingFunction()
{
}
</script>
于 2013-10-28T16:23:11.977 回答
0

尝试这个 :

<div class="button" href="javascript: void(0)" onclick="location.href='mailto:abc@xyz.com';">Click to Send email</div>
于 2019-01-24T00:48:02.203 回答