识别唯一浏览器/选项卡实例,例如,用户在 mysite.com 标识每个选项卡上打开了 2 个选项卡



在过去的几天里,我读了这篇文章和许多其他链接。

问题是我需要为用户打开的每个选项卡或浏览器都有一个唯一标识符 mysite.com(示例站点名称)

我不能使用唯一的会话,例如当我打开 mysite.com 并在会话中选择例如"胡萝卜"时,mysite.com 的所有其他选项卡/浏览器现在在特定会话值中都有"胡萝卜"。

但是服务器仍然明显地唯一地标识每个浏览器/选项卡。有没有办法掌握这个唯一的浏览器/标签ID,或者创建一个唯一的浏览器/标签ID?

我不是指通过JavaScript自己生成一个唯一的ID,我在StackOverflow上看到了一些很好的例子。问题是我需要在每个母版页上实现它,并在母版/非母版页之间携带它。同样例如,在我的实例中,它不起作用,因为我可以打开浏览器,如果我在几个页面上运行它 20 次,它会生成 20 个不同的 ID,例如当我无法跨端口传输值时。

所以请不要浪费大家的时间,这不是一个随机的 GUID 创建问题,这个问题与为每个选项卡/浏览器获取唯一的可创建 ID(如果丢失)有关,最好通过指向服务器的链接进行标识。

这是你谈到的一个大话题。如果只需要在表单提交期间保留 ID,则可以采用客户端 window.name 属性的方法,并使用window.onload传播具有该值的隐藏字段。但是当用户点击超链接(单击网站上的链接)时,这将不起作用。加载:检查是否设置了window.name;如果未设置,请分配 GUID。如果设置,则设置隐藏字段 = window.name 。 因此,在提交时,您的表单将具有带有window.name GUID 的隐藏字段。

您也可以使用HTML5 window.sessionStorage它将解决您所有的麻烦,但这不适用于较旧的浏览器。

如果您需要支持向后浏览器和非提交类型,那么您将需要在客户端编写一些非常复杂的cookie/会话管理。不漂亮。 只是希望以上2个就足够了。

最新更新