对于初学者来说,完全忘记javascript——它不会发生。没有电子邮件客户端会允许 JS 通过,这太冒险了。
至于表单方法,暂且不说邮件客户端是否允许通过,如果页面立即自行关闭(见下面的片段),一些操作系统、浏览器和邮件客户端可能会配合,将焦点“交给”邮件客户端(这就是您所追求的——用户被“带回原来的位置”)。但是,无法保证客户端操作系统、浏览器和电子邮件客户端将如何反应。
此外,有些人使用非 HTML 客户端,而有些客户端(如 Outlook)可能会完全禁止这样做。从安全的角度来看,这具有被利用的潜力,因此即使您所做的不是利用,整个实践也具有这种潜力,因此可能会被阻止。
非 HTML 电子邮件客户端可能会将您的 HTML 转储为文本,因此在这种情况下看起来会很糟糕。
要立即关闭窗口,您可以尝试:
<script type="text/javascript">window.close();</script>
因此,页面http://someWebsite.com/he_likes_it
仅包含此作为输出(在完成任何需要完成的服务器端工作之后)。根据浏览器、其他选项卡是否打开以及其他一些因素,窗口可能会毫无问题地关闭。可能是有效的词!然后用户可能会被带回电子邮件客户端。没有办法编写脚本,也没有办法控制它。
作为替代方案,我建议您做一些不太容易出现问题的事情,以及电子邮件客户端、操作系统和浏览器的变幻莫测……这远不那么“偷偷摸摸”——不要向用户隐瞒您正在做的事情。而不是表格,只需在您的电子邮件中包含一个链接:
Like this email? Let us know: <a href="http://www.mysiteurl.com/he_liked_it/UNIQUE_IDENTIFIER">http://www.mysiteurl.com/he_liked_it/UNIQUE_IDENTIFIER</a>
唯一标识符可以是电子邮件(无论如何,这就是您在表单中所做的事情),或者是链接到用户的某种令牌。无论哪种情况,您都可以在页面上添加一些文本以感谢用户的反馈:
谢谢!我们很高兴您喜欢这封电子邮件。您可以关闭此窗口,或
单击此处转到主页。
这是跨浏览器、跨操作系统的,适用于任何支持 HTML 的电子邮件客户端。对于纯文本客户端,他们将能够将 URL 复制粘贴到他们的浏览器中,而不会看到大量的标记混乱。您的用户会欣赏您的透明度、您表达的感激之情,并且您不会向他们发送引发其电子邮件客户端安全警告的电子邮件。