2017-05-17 3 views
1

Mein Verständnis ist, dass sessionStorage Werte sollten nach dem Neuladen von Seiten beibehalten werden, aber auch zwischen Seiten auf der gleichen Website, solange die gleiche Registerkarte verwendet wird.sessionStorage nicht persistent zwischen den Seiten

In einer bestimmten Seite kann ich 2 sessionStorage-Werte festlegen. Sie bleiben beim Nachladen bestehen und wenn ich von einem anderen auf diese Seite zurückkomme.

Ich muss diese Werte auf einer anderen Seite auf der gleichen Website abholen, aber ich kann nicht. Fehle ich etwas in der Dokumentation, die besagt, dass dies nicht möglich ist oder mache ich etwas falsch?

Ich habe localStorage auch versucht, aber das gleiche Problem.

In einem Szenario, in dem meine 2 sessionStorage-Werte festgelegt sind, teste ich für sie mit der folgenden if-Anweisung, aber es kommt nie dazu. Ich habe auch versucht, jeden auf die Konsole zu loggen, aber kein Glück.

Danke.

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); 

}

+1

Können Sie bitte den SessValues-Funktionscode angeben (wenn dies der ist, der sie setzt) ​​oder Ihren Code offen legen, wo Sie die Daten tatsächlich setzen? –

+0

Möglicherweise setzt Ihr Code auf dieser Seite die 'sessionStorage'-Werte zurück, da Sie normalerweise sessionStorage-Elemente auf einer anderen Seite erhalten, wenn sie auf derselben Registerkarte geöffnet werden. –

+0

hat jetzt den vollständigen Codeblock hinzugefügt – groober

Antwort

0

Apologies. Völlig eingeholt in Tests vor Ort. Alles in Ordnung auf einem Server. Haben Sie eine Eingabeaufforderung von hier stackoverflow

Verwandte Themen