0

我正在尝试检测当前页面是否已在其他选项卡中打开。

我尝试使用 window.open(),但我得到的是返回当前窗口本身,而不是假定的具有相同地址的其他窗口。它总是会返回 true。

比如说,如果“mysite.com”已经打开,当用户用“mysite.com”打开一个新窗口时,我会检测到,关注另一个窗口并关闭当前窗口。

很想听听任何想法,或者这是否可能。我正在尝试将所有链接捕获到一个选项卡中。

4

2 回答 2

1

您可以使用 localStorage 事件在不同选项卡之间进行通信,从而检测页面是否已打开。检查这个答案:https ://stackoverflow.com/a/14792159/60745

于 2013-07-30T08:47:56.563 回答
0

即使您只关心同一台机器上同一浏览器中的选项卡,尝试通过纯 javascript 完成此操作的问题是,尽管您可以在每个站点页面 ( window.onload) 上设置一个 cookie 来记录用户拥有最初访问您的网站时,没有安全的方法可以确保您在他们离开时删除此 cookie。

尽管您有onunload&onbeforeunload事件,但当您通过链接离开站点、使用浏览器后退按钮或关闭浏览器时,不会触发这些事件。

于 2013-07-30T06:23:10.553 回答