是否有我可以在本地设置或使用的浏览器选项卡标识符?
Is there a browser tab identifier that I can set or use locally?
(我正在开发一个 Node.js/Express 网络应用程序。)
有没有办法识别选项卡并将其标识符保存在浏览器本地,以便标识符在同一网站的不同页面上保持不变?
例如,用户在同一浏览器的两个选项卡中打开了我的 Web 应用程序。我想知道它们是在不同的选项卡中打开的。即使tab A中的用户按F5刷新页面,我(在客户端Javascript)也想知道页面还在tab A中。
是否有 window
的 属性 或 DOM 中的其他对象来标识浏览器选项卡?
一点都不简单。但是,有两种有趣的技术可以帮助您解决问题。
sessionStorage 与您描述的最接近。它为每个选项卡提供了一个不同的 Storage 对象,您可以在其中存储随机 ID。虽然它不太有效,因为当您在新选项卡中打开 link 时,第二个选项卡会获得 copy 父页面的 sessionStorage 对象,包括存储在父页面的 sessionStorage 中的任何内容。
storage event is probably what you want to use. You can have your tabs communicate directly with each other to coordinate unique IDs or detect multiple tabs being open. See 专注于如何在 javascript 中跨选项卡进行通信。
这两种技术的某种组合可能会帮助您解决您想要完成的任何问题。
(我正在开发一个 Node.js/Express 网络应用程序。)
有没有办法识别选项卡并将其标识符保存在浏览器本地,以便标识符在同一网站的不同页面上保持不变?
例如,用户在同一浏览器的两个选项卡中打开了我的 Web 应用程序。我想知道它们是在不同的选项卡中打开的。即使tab A中的用户按F5刷新页面,我(在客户端Javascript)也想知道页面还在tab A中。
是否有 window
的 属性 或 DOM 中的其他对象来标识浏览器选项卡?
一点都不简单。但是,有两种有趣的技术可以帮助您解决问题。
sessionStorage 与您描述的最接近。它为每个选项卡提供了一个不同的 Storage 对象,您可以在其中存储随机 ID。虽然它不太有效,因为当您在新选项卡中打开 link 时,第二个选项卡会获得 copy 父页面的 sessionStorage 对象,包括存储在父页面的 sessionStorage 中的任何内容。
storage event is probably what you want to use. You can have your tabs communicate directly with each other to coordinate unique IDs or detect multiple tabs being open. See
这两种技术的某种组合可能会帮助您解决您想要完成的任何问题。