我需要根据我的上下文路径创建两个本地存储对象。
example.com/v1
和 example.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/