javascript - 如果域相同,则在现有选项卡中打开的电子邮件链接
问题描述
我有用户注册过程,最后会向注册用户发送一封电子邮件以确认用户的电子邮件。然后用户转到他/她的电子邮件并找到带有确认链接的电子邮件。
此时用户打开了两个选项卡(但可以打开更多选项卡) - 电子邮件选项卡和我的域的选项卡,让我们称之为mydomain.com
。
是否有可能,当用户单击电子邮件中的确认链接时,mydomain.com
已打开的选项卡会更新?
现在,当用户单击确认链接时,mydomain.com
会创建一个新选项卡,它会为站点创建两个实例,这很好但并不理想。
我知道我可以创建一个定期检查用户是否确认或打开 websocket 的函数,但我想知道是否有更简单的方法。
解决方案
您可以使用 关闭其中一个选项卡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>
推荐阅读
- objective-c - 未调用 didReceiveRemoteNotification
- java - 为什么这个主要方法没有被终止?
- android - 不同api的不同styles.xml
- tensorflow - 为什么多GPU比单GPU慢
- android - 以编程方式更改列表视图单击项目的值
- javascript - 状态历史没有在反应中正确更新
- c# - C# - Visual Studio - 分开的输出文件夹中的 32 位和 64 位 DLL
- angularjs - 执行包装在 AngularJS 的 $timeout 服务中的函数时出现意外的长时间延迟
- node.js - 未找到 grpc@1.10.1 和 node@10.9.0 的预构建二进制文件
- sql - 在 SQL 查询中过滤包括帐户 ID 或用户 ID 的安全方法