【发布时间】:2015-09-15 20:09:44
【问题描述】:
可以为特定应用清除 localStorage 吗?
用例如下: - 我们有一个名为“Agent Cockpit”的自建应用程序,它与 Application1 共享相同的域名 - 此代理座舱使用本地存储进行某些设置 - 当有人在 application1 上单击“注销”时,所有这些设置都会丢失。我们注意到,当退出 Application1 时,提交了“LocalStorage.clear() 命令,该命令会删除 LocatStorage 中的所有项目。
-- 使用带有应用程序标识符的本地存储密钥可以防止上述情况。但是,我仅有权在“Agent Cockpit”应用程序中进行更改。有没有关于如何实现这一目标的文档? 或者是否有必要为所有使用 localstorage 的应用程序设置一个单独的密钥?因为目前无法在 application1 中进行更改。
我该如何实现?
【问题讨论】:
-
localStorage仅同源,因此除非它们位于同一域中,否则您根本无法修改其他“应用程序”存储 -
localStorage 是特定于域的。因此,只有与第一个应用程序位于同一域中时,第二个应用程序才会受到影响
-
请注意,浏览器扩展也可以使用本地存储,就好像它们是您域的一部分一样。如果您希望对 3rd 方浏览器扩展程序友好,则可以为您的本地存储名称添加应用标识符前缀,然后仅删除带有前缀的名称。
-
用例如下: - 我们有一个名为“Agent Cockpit”的自建应用程序,它与 Application1 共享相同的域名 - 此代理驾驶舱使用本地存储进行某些设置 - 所有这些设置都是当有人在 application1 上单击“注销”时丢失。