【问题标题】:sessionStorage not persisting between pagessessionStorage 不在页面之间持续存在
【发布时间】: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


【解决方案1】:

抱歉。完全赶上了本地测试。在服务器上一切正常。从这里得到提示stackoverflow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 2013-09-19
    • 2011-04-04
    • 2015-10-19
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多