1

应管理层的要求,我需要打开用户的电子邮件客户端并单击按钮提交表单。我最初有

window.location = "mailto:email@example.com";

作为提交输入的单击事件的回调,但这不起作用。看起来表单提交得很快。

使用window.open确实有效,但它会创建一个不受欢迎的空白窗口。

我也有防止和延迟表单提交的想法,如

window.location = "mailto:personalcounselor@gleim.com";
setTimeout(function () { 
    $(this).closest('form').trigger('submit');
}.bind(this), 1000); 
e.preventDefault();

这也有效,但对我来说似乎很粗略。

有什么办法可以同时提交表单并打开mailto链接?

4

1 回答 1

2

我不知道这是否可行,但我确信通过一些调整它应该可以工作并获得你想要的结果(评论太长了,如果它不起作用,我会很乐意删除它!);

$("form").on("submit", function() {
     window.onbeforeunload = function() {
         window.location = "mailto:email@example.com";
     };
});

简单来说就是在提交表单的时候,设置onbeforeunload事件改变位置到mailto。我认为这样做只会在提交表单时打开邮件,而不是在用户离开时打开。

我不知道这是否可行,或者它有多hacky,但我想我会投入两分钱!

更新

在表单提交时,来自带有表单值的 javascript 的 mailto

这似乎确实有效并得到了其他人的验证。

$("input[type=submit]").click(function(){
     window.location.href = "mailto:email@example.com";
});
于 2013-05-20T00:54:06.993 回答