2011-09-10 10 views
10

HTML5 로컬 저장소를 사용하여 mega-simple setItem 및 getItem을 처리하려고합니다. 그것은 단지 작동하지 않는 것 같습니다. 작동 방식 :localStorage.setItem이 새로 고침시 지속되지 않음

$(document).ready(function() { 
    localStorage.setItem('keyA', 'valueA'); 
    var testA = localStorage.getItem('keyA'); 
    alert(testA); 
}); 

경고 상자에 'valueA'가 출력됩니다. 하지만 2 행 (항목 값 설정)을 주석 처리하고 페이지를 새로 고침하면 'null'로 경고됩니다.

왜 값이 지속되지 않습니까? 마치 실제로 실제로 저장되지 않는 것과 같습니다.

브라우저는 Firefox 6이므로 아무런 문제가 없습니다. jquery document.ready에서 호출하는 것과 관련이있을 수 있습니까? 나는 봤지만 그것에 대해 아무것도 볼 수 없습니다.

누구나이 초기 장애물을 극복 할 수 있다면 고맙겠습니다. 감사합니다.

+0

Chrome에서 재생산 할 수 없습니다. – pimvdb

+0

흠 ... Chrome에서도 작동하지만 Firefox 6에서는 작동하지 않습니다!? – Dan

+0

누구든지 Firefox 6.0.2 (최신 버전)에서이 기능을 사용해 볼 수 있습니까? 나는이 버전의 Firefox에서이 작업을 수행하는 다른 방법이 있다고 생각하기 시작했다. 또는 버그가있다. (필자는 로컬 저장소의 많은 다른 예제를 시도했지만 Firefox 6.0.2에서는 그 중 하나만 유지하는 것으로 보이지 않는다.) – Dan

답변

12

좋아, 많은 좌절감을 겪은 후에 나는 해결책을 가지고있다. 기본적으로, 나는이 개념을 '빠른'개념 증명으로 파일 시스템에서 로컬로 실행하고있었습니다. Firefox 나 IE9에서는 작동하지 않지만 Chrome에서는 작동했습니다.

내가 끝낸 것은 실제 도메인에서이 작업을 시도한 것이고, 그 트릭을 완료 한 것으로 보입니다.

그래서 내가 결론을 내릴 수있는 것은 Firefox (6.0.2 이상)의 localStorage와 파일 시스템 경로에서 실행될 때 IE9가 작동하지 않는다는 것입니다. Chrome에서 작동합니다. Firefox와 IE9는 '적절한'도메인을 실행할 것을 요구합니다. 아마도 Chrome보다 localStorate 객체를 '도메인'에 연결하는 방식보다 더 엄격하기 때문입니다 (Chrome에서는 도메인 일 필요가 없습니다).

나는 그것이 나에게서 지옥을 좌절 시켰기 때문에 이것이 사람들을 도왔 으면 좋겠다. :)

+2

다음과 같은 것들이 흥미로울 수있다 : [Firefox의 "localStorage"는 페이지가 온라인 상태입니까?] (http://stackoverflow.com/questions/1492942/is-localstorage-in-firefox-only-working-when-the-page-is-online) 및 [버그 507361 - localStorage가 작동하지 않습니다. in file : /// documents] (https://bugzilla.mozilla.org/show_bug.cgi?id=507361). –

관련 문제