是否有我可以在本地设置或使用的浏览器选项卡标识符?

时间:2017-05-20 01:33:51

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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