【发布时间】:2017-05-17 21:00:24
【问题描述】:
我的理解是 sessionStorage 值应该在页面重新加载后保持不变,而且只要使用相同的选项卡,同一站点中的页面之间也应该保持不变。
在特定页面中,我可以设置 2 个 sessionStorage 值。当我从另一个页面返回该页面时,它们会在重新加载时持续存在。
我需要在同一站点的另一个页面上获取这些值,但我不能。 我是否在文档中遗漏了一些说明这是不可能的内容,还是我做错了什么?
我也尝试过 localStorage 但同样的问题。
鉴于设置了我的 2 个 sessionStorage 值的场景,我使用以下 if 语句测试它们,但它永远不会得到它。我也尝试将每个日志记录到控制台,但没有运气。
谢谢。
if (Modernizr.sessionstorage) {
var
a = document.getElementById('aId'),
b = document.getElementById('bId'),
c = document.getElementById('cId'),
d = document.getElementById('dId'),
e = document.getElementById('eId'),
f = parseInt(b.value)*parseInt(d.value)+4;
var startValues = function (){
a.value = b.value;
c.value = d.value;
e.value = f;
};
var sessValues = function (){
b.value = sessionStorage.getItem('thingOne');
d.value = sessionStorage.getItem('thingTwo');
startValues();
};
if(sessionStorage.getItem('thingOne') !== null || sessionStorage.getItem('thingTwo') !== null){
sessValues();
}
else{
sessionStorage.setItem('thingOne', 1);
sessionStorage.setItem('thingTwo', 1);
startValues();
}
b.addEventListener('input', function () {
sessionStorage.setItem('thingOne', b.value);
a.value = b.value;
}, false);
d.addEventListener('input', function () {
sessionStorage.setItem('thingTwo', d.value);
c.value = d.value;
}, false);
}
【问题讨论】:
-
您能否提供 sessValues 函数代码(如果是设置它们的代码)或在您实际设置数据的位置公开您的代码?
-
可能您在此页面上的代码会重置
sessionStorage值,因为如果在同一选项卡中打开,通常您确实会在另一个页面上获得 sessionStorage 项目。 -
刚刚添加了完整的代码块
标签: javascript html sessionstorage