的JavaScript。检查焦点是否没有标签

时间:2016-12-09 06:07:42

标签: javascript tabs

现在我使用visibilitychange事件查看哪个浏览器标签处于活动状态。我使用活动标签在服务器端观看一些事件,我不想在所有打开的标签中运行此观察程序。

但是现在我想运行这个观察者,即使没有标签是焦点,但仍然只在一个标签中。

如何检查是否没有选项卡,并确保某些脚本仅在一个后台选项卡中运行?

1 个答案:

答案 0 :(得分:1)

您必须解决标签之间的通信问题。有几种选择:

  1. 缓存
  2. 本地存储
  3. 服务器端同步(WebSockets,Ajax池等)
  4. 每个标签必须在共享数据中心(上述之一)中更新其状态。

    完成后,您应该使用主选择算法来确定哪个选项卡应与服务器通信。在您的情况下,这可能就像第一个打开的选项卡一样简单。

    使用本地存储时存在一些怪癖,例如两个不同的子域无法访问同一本地存储。 Cookie是您可以定义父域的另一种方式。我会说第三个选项在调试和添加更复杂的选择逻辑方面是最好的。