javascript - 在javascript中使用mailto后无法关闭新窗口

标签 javascript

我试图在单击按钮时发送调用电子邮件,其工作正常,但在此过程中打开了额外的窗口,即使我尝试了 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/

相关文章:

javascript - 即使全局对象被替换,它也会返回原始值

javascript - 带有 html css bootstrap 的小元素(灯箱)

javascript - HTML5 - Chrome 44 - flexbox 中的文本未正确对齐

c# - 如何在使用 AsyncFileUpload 时在客户端获取服务器端重命名文件名

javascript - 从 ascx 代码隐藏文件调用 Aspx javascript 函数

javascript - 如何在不 trim 字符串的情况下设置元素的文本内容?

javascript - 从 javascript 到 PHP 的 POST 请求

javascript - Karma 中可以过滤文件吗?

javascript - 正则表达式替换 : match variable number next to integer within substitute string

javascript - Node.js 中的 Input()