【发布时间】:2011-05-01 14:50:16
【问题描述】:
我只是在考虑整个网站注册过程。
用户访问您的网站并注册,然后您告诉他您已向他发送了一封电子邮件,他需要验证他的电子邮件地址。所以他点击 Ctrl+T,弹出一个新标签,点击他的Gmail fav 按钮,没有阅读您冗长的欢迎电子邮件,但点击他看到的第一个链接。 Gmail 在另一个标签页中打开您的网站...
他不需要也不希望为您的网站打开两个标签,他只想查看在他注册之前您不允许他访问的那个该死的页面。
那么我们该怎么办?我看到一个网站(但我忘记了它是什么)做得非常好,它实际上刷新了我打开的第一个标签,而无需我按下任何按钮。
我在想,如果我们可以检测到用户是否已经打开了您网站的标签,我们可以自动关闭新的验证标签,或者告诉他他可以关闭它可以返回他的另一个标签(我们现在已经刷新并让他登录了)。
或者,也许当他收到您烦人的“请检查您的电子邮件”消息时,他直接转到他的电子邮件,用他的电子邮件替换您的网站,他完全知道该电子邮件会将他再次链接回该网站。在这种情况下,我们不想关闭选项卡,但也许可以保存他之前的位置,然后再次将他重定向到那里?
无论如何,这只是用例......问题仍然存在。 我们能否检测用户是否已打开您网站的标签页?
这个问题不是关于如何检测何时用户完成了注册过程。 Ajax polling 或 comet 可以解决这个问题。我特别想知道用户是否已经打开了您网站的标签。
【问题讨论】:
-
我没有足够的说服力来写出完整的答案 - 但基本上,您需要使用 cookie、本地存储或服务器端来跟踪它 - 实际上,任何形式的外部存储数据单个窗口。
-
@Ed:我在乎。我注意到一些小事。那个网站给我留下了很好的印象!
-
你的目标浏览器是什么?你能用localStorage之类的东西吗?
-
让您的页面将 date.getTime() 存储到一个变量中。将 localStorage["whatever"] 设置为存储的值。每隔几秒钟,检查一下 localStorage["whatever"] 是否等于您之前设置的值。如果没有,你肯定有两个或更多的页面实例。
-
也许这个答案可能会有所帮助:stackoverflow.com/a/62231610/2661938
标签: javascript browser tabs user-experience