Javascript Angular 8防止在复制选项卡上的浏览器选项卡之间共享会话

Javascript Angular 8防止在复制选项卡上的浏览器选项卡之间共享会话,javascript,angular,session,local-storage,Javascript,Angular,Session,Local Storage,我读过关于会话存储和本地存储的博客。现在根据我的理解 会话存储:会话存储仅存在于当前浏览器选项卡中。具有相同页面的另一个选项卡将具有不同的会话存储 本地存储:数据在同一来源的所有选项卡和窗口之间共享 现在,我的要求是,每当用户在同一窗口中打开新选项卡或复制以前打开的选项卡时,我都可以看到会话存储有一些价值。如果用户打开新选项卡或复制当前打开的选项卡,我希望会话存储为空并生成新会话密钥。但是如果用户刷新或重新加载页面,我希望继续使用相同的会话存储 注意:我的代码中没有共享会话,也没有存储从本地存储

我读过关于会话存储和本地存储的博客。现在根据我的理解

会话存储:会话存储仅存在于当前浏览器选项卡中。具有相同页面的另一个选项卡将具有不同的会话存储

本地存储:数据在同一来源的所有选项卡和窗口之间共享

现在,我的要求是,每当用户在同一窗口中打开新选项卡或复制以前打开的选项卡时,我都可以看到会话存储有一些价值。如果用户打开新选项卡或复制当前打开的选项卡,我希望会话存储为空并生成新会话密钥。但是如果用户刷新或重新加载页面,我希望继续使用相同的会话存储


注意:我的代码中没有共享会话,也没有存储从本地存储到会话存储的任何内容。您知道如何实现上述场景吗。

当应用程序加载时,您可以生成一个散列,并使用此散列将密钥保存在本地存储中


app.component.ts
construct()。您可以通过
窗口获取浏览器tabId。tabId

您可以在应用程序加载时生成一个散列,并使用此散列将密钥保存在本地存储中


app.component.ts
construct()。您可以通过
窗口获取浏览器tabId。tabId

,但我如何通过将哈希存储在本地存储中来了解应用程序在新选项卡中加载?如果我刷新页面,它仍将加载app component.ts,但使用相同的tabId;)window.tabId不是angular中的一个参数。请您更详细地说明如何获取tabId,但如何通过在本地存储中存储哈希来了解应用程序在新选项卡中加载?如果刷新页面,它仍将加载app component.ts,但使用相同的tabId;)window.tabId在angular中不是一个参数。您能更详细地说明我如何获得tabId吗