首页 > 解决方案 > 如果域相同,则在现有选项卡中打开的电子邮件链接

问题描述

我有用户注册过程,最后会向注册用户发送一封电子邮件以确认用户的电子邮件。然后用户转到他/她的电子邮件并找到带有确认链接的电子邮件。

此时用户打开了两个选项卡(但可以打开更多选项卡) - 电子邮件选项卡和我的域的选项卡,让我们称之为mydomain.com

是否有可能,当用户单击电子邮件中的确认链接时,mydomain.com已打开的选项卡会更新?

现在,当用户单击确认链接时,mydomain.com会创建一个新选项卡,它会为站点创建两个实例,这很好但并不理想。

我知道我可以创建一个定期检查用户是否确认或打开 websocket 的函数,但我想知道是否有更简单的方法。

标签: javascripthtml

解决方案


您可以使用 关闭其中一个选项卡window.close();

这是一个包含两个文件的工作示例:以下逻辑在 3 秒后关闭选项卡。

在此处输入图像描述

index.php

<h1>Confirm your email by clicking on the below button</h1>
<a href="http://localhost/confirm.php" target="_blank">Click here to confirm</a> 

confirm.php

<html>
<head>
<script>
function timeToClose(){

    setTimeout(function(){ window.close(); }, 3000); // or some other logic

}
timeToClose();
</script>
<title>Confirmed</title>
</head>
<body>
Thank you for confirming your email.
</body>
</html>

推荐阅读