2011-01-16 19 views
8

chicos día G,¿Cómo comprobar si HTML sessionStorage no está vacío?

estoy tratando de averiguar la mejor manera de comprobar si hay storageSession vacío en HTML5.

Me di cuenta de que algunos navegadores devuelven nulo y algunos solo devuelven espacio vacío si borra o no establece ningún valor para sessionStorage.

He intentado lo siguiente

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

pero no parecía funcionar.

¿Alguien tiene una mejor manera de comprobar si una sessionStorage está vacía?

Apreciar su ayuda en esto y gracias de antemano.

Respuesta

10

Eso debería funcionar; el problema es que tiene nulo entre comillas.

Además, sessionStorage.length le dará la cantidad de valores almacenados.

+0

Hola, Herohtar, gracias por señalarme el error. Realmente lo aprecio. En cuanto al caso de que algún navegador devuelva nulo y devuelva espacio vacío, ¿deberíamos crear 2 estados de condición? Uno para nulo y uno para espacio vacío? –

+0

Si necesita verificar ambos, eso es lo que tendrá que hacer. Solo por curiosidad, ¿qué navegador devuelve espacio vacío? getItem() siempre debe devolver nulo si el valor no está establecido. Además, vea mi adición a mi respuesta para otra prueba posible. – Herohtar

+0

Hola Herohtar, si haces un document.write (sessionStorage.getItem ('value1')); la mayoría de los navegadores lo convertirán en nulo si está vacío. Sin embargo, es una historia diferente para las entradas de texto. IE incluirá la palabra null como valor en el cuadro de texto. –

4

Pero así es como se comprueba para el almacenamiento de sesión "vacío"

if (sessionStorage.length == 0) { 
1

También puede intentar

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

Utilice esta opción para comprobar si hay artículo es el almacenamiento sesión llamada "nombre"

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

Usando typeof sessionStorage ['name'] === 'undefined' funciona para mí – moabi

0

he comprobado esta manera

$(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; 
    } 
Cuestiones relacionadas