2011-01-16 11 views
8

G'day guys,Jak sprawdzić, czy HTML sessionStorage nie jest pusty?

Próbuję znaleźć najlepszy sposób sprawdzenia pustej pamięci Session w HTML5.

Zauważyłem, że niektóre przeglądarki zwraca null, a niektóre po prostu powrócić pustą przestrzeń, jeśli jasne lub nie ustawiać żadnych wartości do sessionStorage.

Próbowałem następujące

if (sessionStorage.getItem('value1') == "null" && sessionStorage.getItem('value2') == "null") { 

Ale to nie wydawało się do pracy.

Ktoś ma lepszy sposób na sprawdzenie, czy sessionStorage jest puste?

Doceń swoją pomoc w tej sprawie i dziękuję z góry.

Odpowiedz

10

To powinno zadziałać; Problem polega na tym, że w cudzysłowie masz null.

Również sessionStorage.length daje liczbę wartości przechowywanych.

+0

Cześć Herohtar, dziękuję za wskazanie mi błędu. Naprawdę to doceniam. Co się stanie, gdy niektóre przeglądarki zwracają wartość null, a niektóre zwracają pustą przestrzeń, czy powinniśmy utworzyć 2 wyrażenie warunku? Jeden za zero, a drugi za puste miejsce? –

+0

Jeśli musisz sprawdzić oba, to właśnie będziesz musiał zrobić. Po prostu z ciekawości, która przeglądarka zwraca pustą przestrzeń? Funkcja getItem() powinna zawsze zwracać wartość null, jeśli nie została ustawiona. Zobacz także mój dodatek do mojej odpowiedzi na inny możliwy test. – Herohtar

+0

Cześć Herohtar, jeśli zrobisz document.write (sessionStorage.getItem ('value1')); większość przeglądarki wyrenderuje ją jako pustą, jeśli jest pusta. Jednak jest to inna historia dla wprowadzania tekstu. IE będzie zawierać słowo "null" jako wartość w polu tekstowym. –

4

Ale to, w jaki sposób sprawdzić dla „pusta” przechowywania sesji

if (sessionStorage.length == 0) { 
1

Możesz także spróbować

if($window.sessionStorage.value === undefined) {} 
2

to wykorzystać, aby sprawdzić, czy istnieje pozycja jest przechowywanie sesji o nazwie „nazwa”

if (sessionStorage['name']) { 
    console.log("There is 'name' in session storage ") 
} 
+0

Używanie typeof sessionStorage ['name'] === 'undefined' działa dla mnie – moabi

0

Sprawdziłem w ten sposób

$(document).ready(function() { 
     if (window.sessionStorage) { 
      if (sessionStorage.getItem("x-mas") === null) { 
       if (getCountryCode() == 'de') { 
        $('#xmasModal').modal(); 
        sessionStorage.setItem("x-mas", "1") 
       } 
      } 
     } 
    }); 

    function getCountryCode() { 
     var url = window.location.pathname; 
     var segments = url.split('/'); 
     var countrycode = segments[1]; 
     return countrycode; 
    } 
Powiązane problemy