2011-01-16 3 views
8

G'day guys,HTML sessionStorage가 비어 있지 않은지 확인하는 방법은 무엇입니까?

HTML5에서 empty storageSession을 확인하는 가장 좋은 방법을 찾으려고합니다.

일부 브라우저는 null을 반환하고 일부는 clear 또는 sessionStorage에 값을 설정하지 않은 경우 빈 공간 만 반환하는 것으로 나타났습니다.

나는 다음과 같은

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

을 시도했다 그러나 작동하는 것 같았다하지 않습니다.

누구든지 sessionStorage가 비어 있는지 확인하는 더 나은 방법이 있습니까?

감사합니다. 미리 감사드립니다.

답변

10

그래야합니다. 문제는 null입니다.

sessionStorage.length 또한 저장된 값 수를 알려줍니다.

+0

안녕하세요 Herohtar, 저에게 오류를 지적 해 주셔서 감사합니다. 정말 감사합니다. null을 반환하는 일부 브라우저와 빈 공간을 반환하는 경우는 2 조건문을 작성해야합니까? 하나는 빈 공간을위한 것인가? –

+0

둘 다 확인해야하는 경우 그 작업을 수행해야합니다. 그냥 호기심에서, 어떤 브라우저가 빈 공간을 반환합니까? 값이 설정되어 있지 않은 경우 getItem()은 항상 null을 반환합니다. 또한 다른 가능한 테스트에 대한 나의 대답에 대한 나의 추가 사항을보십시오. – Herohtar

+0

안녕하세요 Herohtar, document.write (sessionStorage.getItem ('value1')); 대부분의 브라우저는 빈 경우 null로 렌더링합니다. 그러나 텍스트 입력에 대해서는 다른 이야기입니다. IE는 텍스트 상자에 null이라는 단어를 포함시킵니다. –

4

그러나 이것은 당신이

if (sessionStorage.length == 0) { 
1

당신은 또한 항목이 있는지 확인하기 위해이

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

사용을 시도 할 수 있습니다 "빈"세션 저장소를 확인하는 방법입니다은 "이름"

라는 세션 저장소입니다
if (sessionStorage['name']) { 
    console.log("There is 'name' in session storage ") 
} 
+0

typeof sessionStorage [ 'name'] 사용 === '정의되지 않은'작동 – moabi

0

이렇게 확인했습니다.

$(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; 
    } 
관련 문제