我试图在单击按钮时发送调用电子邮件,其工作正常,但在此过程中打开了额外的窗口,即使我尝试了 close
方法,我也无法关闭它。我已经在 IE 10 和 IE 11 中尝试过,但不起作用。
下面是代码
<html>
<head>
<script type='text/javascript'>
function sendMail(){
var wi = window.open('mailto:someone@example.com?subject=' + encodeURIComponent(document.getElementById("metric").value));
wi.close();
}
</script>
</head>
<body>
<h4>Send e-mail to committee with below subject:</h4>
<form action="javascript:sendMail()" method="post" enctype="text/plain">
<select id="metric">
<option value="test1">test1</option>
<option value="test2">test2</option>
</select>
<br><br>
<input type="submit" value="Send">
<p></p>
</form>
</body>
</html>
最佳答案
我要说的是,这不是你应该采取的方式。
mailto: 链接可打开用户的默认电子邮件客户端。如果您在脚本中删除关闭窗口的尝试,您将看到这种情况发生。但要做任何有用的事情,您必须填写邮件以及发件人等。
因此,用户需要在电子邮件客户端中触发实际发送。
您通常要做的是将请求发送到服务器,并让服务器使用 SMTP 服务(几乎所有服务器现在都有它)来组合并发送电子邮件。做起来很简单,它的工作原理取决于您将在哪台服务器上托管您的解决方案。
据我所知,没有纯粹的 javascript/无服务器方法可以做到这一点。如果你仔细想想,这是有道理的;什么可以阻止某人将脚本放入网页中,根据您从网页收集的内容发送一千封电子邮件?
关于javascript - 在javascript中使用mailto后无法关闭新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41332509/