【问题标题】:Is there a browser tab identifier that I can set or use locally?是否有可以在本地设置或使用的浏览器选项卡标识符?
【发布时间】:2017-10-20 05:35:02
【问题描述】:

(我正在开发一个 Node.js/Express 网络应用程序。)

有没有办法识别标签并将其标识符保存在本地浏览器中,以便标识符在同一网站的不同页面中保持不变?

例如,我的 Web 应用程序由用户在同一浏览器的两个选项卡中打开。我想知道它们是在不同的选项卡中打开的。即使选项卡 A 中的用户按 F5 刷新页面,我(在客户端 Javascript 中)也想知道该页面仍在选项卡 A 中。

在 DOM 中是否有 window 的属性或其他标识浏览器选项卡的对象?

【问题讨论】:

    标签: google-chrome firefox browser safari microsoft-edge


    【解决方案1】:

    没有什么简单的。但是,有两种有趣的技术可以帮助您解决问题。

    sessionStorage 与您描述的最接近。它为每个选项卡提供了一个不同的 Storage 对象,您可以在其中存储随机 ID。但它并不完全有效,因为当您在新选项卡中打开链接时,第二个选项卡会获得父选项卡的 副本页面的 sessionStorage 对象,包括您存储在父页面的 sessionStorage 中的任何内容。

    storage event 可能是您想要使用的。您可以让您的选项卡直接相互通信以协调唯一 ID 或检测多个选项卡是否打开。请参阅this question,它的重点是如何在 javascript 中跨选项卡进行通信。

    这两种技术的某种组合可能会帮助您解决您想要完成的任何事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多