如何使用户不重复浏览器选项卡?

时间:2019-07-03 07:54:45

标签: javascript local-storage browser-tab

有一项任务是使该项目的每个网页都不重复。那些。由于同一浏览器中的注意力不集中,用户不应打开同一网页的多个重复项。请提出具体解决方案。

1 个答案:

答案 0 :(得分:-1)

如果满足一个条件,则可以非常简单地解决任务-每个页面都有其自己的唯一标识符。我有这个$('body')。attr('id')。 让我们调用函数noDuplicateTabs,并在每次页面启动时调用它。 我们使用localStorage:

let noDuplicateTabs = function (pageName) {
  localStorage.getItem(pageName)
  ? window.close()
  : localStorage.setItem(pageName, 'open');

  window.onbeforeunload = function () {
     localStorage.setItem(pageName, '');
  };
}

因此,我们在函数中传递页面名称,并使用与页面名称相对应的localStorage键检查是否存在值。 如果找到具有非空值的键,则我们关闭页面,如果没有,则将值“打开”写入其中。

我们还使用窗口的onbeforeunload属性,该属性在重新加载或关闭页面之前起作用。在这种情况下,我们将擦除该值。 现在,在同一浏览器中将不再重复。