javascript - 找到一种方法,使用不同的上下文路径为同一源拥有不同的本地存储对象

标签 javascript local-storage

我需要根据我的上下文路径创建两个本地存储对象。 example.com/v1example.com/v2

localstorage.setItem("id", "v1"); // for example.com/v1
localstorage.setItem("id", "v2"); // for example.com/v2

localstorage.getItem("id"); // v2 final out put.

但据我所知,本地存储是基于源的,在这种情况下,源是相同的,即 example.com,并且将会有一个本地存储对象,该对象将结束-书面。其中一些我必须限制。

localstorage.getItem("id"); // v1 for example.com/v1
localstorage.getItem("id"); // v2 for example.com/v2

感谢您提供帮助、意见和建议。

最佳答案

您可以通过文档的当前路径来命名 Storage 项的 keyName
例如,在 example.com/v1 上,keyName 将为 v1,在 example.com/v2 上则为 v1将是v2

在这里我创建了两个函数,它们将根据页面的当前路径设置和获取值。因此,根据您所在的页面,它将仅获取或设置该页面的值。

function storeItemByPath(value, path = location.pathname) {
    localStorage.setItem(path, value);
}
function getStoredItemByPath(path = location.pathname) {
    return localStorage.getItem(path);
}
storeItemByPath('hello');
let value = getStoredItemByPath(); // Returns 'hello' but only on this page.

希望这对您有所帮助。

关于javascript - 找到一种方法,使用不同的上下文路径为同一源拥有不同的本地存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57697269/

相关文章:

javascript - HTML5 本地存储无法找到变量,即使 console.log 显示它

javascript - 本地存储获取后对象未更新

javascript - 如何使用密码保护本地存储数据?

javascript - jQuery Slide 悬停单独移动

javascript - 如何让 Jest 模拟函数 toHaveBeenCalledTimes 对每个测试套件都有新的计数?

javascript - 从 localStorage 存储和加载下拉选择

javascript - chrome 扩展可以将第三方 cookies/存储列入白名单吗?

javascript - 如何显示 Outlook 365 插件的插件设置

javascript - 如何在我的 React 应用程序中包含 "redux-file-upload"

javascript - 如何使用 brunch 将 static `index.html` 中环境变量的占位符替换为实际值?