localStorage是每个域/子域,但我需要每页存储和检索值。
有没有人有一个表达式从该位置删除域名,书签和查询字符串?然后我可以使用encodeURIComponent并在每个localStorage-key前加上这个值。
在这种情况下,我还需要对此表达式进行“反向”,以便仅为当前页面检索值。编辑我认为我不需要'反向'功能 - 它将是相同的表达。
如果我有上面的两个表达式,你会将这个(剥离的)位置用作单个键入,并将其中所需的所有值字符串化吗?这可能更好,因为我可以检查一次位置,以发现它是否有任何相应的localStorage。
答案 0 :(得分:1)
我有一个为我生成一个键的函数,基于页面名称(从window.location获取)并附加了键的内容,然后我将数据存储在localstorage中
function findPageName() {
var path = window.location.pathname,
s = path.split('/'),
l = s.length,
k = path.length,
aux = 0;
if (s[l - 1]) {
return s[l - 1];
} else if (l) { // l will always be a min of 2 (try '/'.split('/') )
return s[l - 2];
} else if (k == 0) {
return '/'; //you likely want to replace this with another value
} else {
return s[1];
}
}
function getKey(key) {
return getPageName() + key;
}