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

Pet*_*ock 3 .net browser asp.net identify

过去几天我已经阅读了这个和许多其他链接。

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

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

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

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

所以请不要浪费每个人的时间,这不是一个随机的 GUID 创建问题,这个问题涉及为每个选项卡/浏览器获取一个唯一的可重新创建的 ID(如果它丢失),最好通过到服务器的链接来识别。

Jos*_*Lee 5

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

您也可以使用 HTML5window.sessionStorage来解决您的所有问题,但这在旧浏览器上不起作用。

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

  • 不幸的是,不,IE7 不是(恕我直言)A 级浏览器 *lol* 说真的,sessionStorage 只适用于 HTML5 兼容的浏览器,而 IE7 是古老的(我认为没有人再使用它了)。http://www.quirksmode.org/dom/html5.html 我(和公司)支持的最低浏览器是 IE8。但是如果你真的需要支持 IE8 之前的版本,那么你需要检查浏览器版本,然后探索使用可以追溯到 IE5 的 userData Behavior。链接:http://msdn.microsoft.com/en-us/library/ms531424(VS.85).aspx (2认同)