2013-02-22 5 views
2

이는 크롬과 파이어 폭스에서 완벽하게 작동합니다 :localStorage.getItem이 IE9에서만 실패하는 이유는 무엇입니까?

var webStorageSupported = ('localStorage' in window) && window['localStorage'] !== null; 
if (webStorageSupported && localStorage.getItem("get_list_center") !== null) { 
    document.getElementById('mail_listing').innerHTML = localStorage.getItem("get_list_center"); 
} 

하지만 IE9에서 페이지를 볼 때 내가 알 수없는 예외가. 내가 입력하면 로컬 저장소에 요소와 콘텐츠를 모두 가져올 수 있습니다. 콘솔에 별도로 document.getElementById('mail_listing').innerHTML;
localStorage.getItem("get_list_center");을 입력합니다.

error screen

나는 로컬 스토리지로 innerHTML를 할당하려고, 알 수없는 예외가 발생합니다. 무엇이 주는가 ???

편집 : 주석의 제안에 따라 개별 변수에서 로컬 저장소를 가져 와서 해당 변수를 innerhtml에 할당하려고했습니다. 그것은 로컬 스토리지가 실제로 HTML 형식의 코드를 검색하는 것을 밝혀졌다, 그러나 전체 문자열을 저장할 수 없습니다 :

<table width="100%">...... 
    <TD width=\"7%\" align=right>12K &nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></DIV>\r\n<DIV style=\"DISPLAY: no 
    [[CUT OFF FROM HERE]] 

내가 로컬 스토리지가 어떤 경우인지, 텍스트 5 MB의 최대 개까지 저장하는 인상이었다을 크롬과 파이어 폭스에 대해서는 어쩌면 이것이 IE9의 경우는 아닙니다. (편집 : google 검색 후, IE9 supports up to 10MB) 이 문제를 해결하기 위해 무엇을 할 수 있습니까?

Edit2가 : 나는 내용이 설정 한 후 바로 검색하면 로컬 스토리지가 제대로 전체 HTML 콘텐츠를 할당하는 것을 확인했습니다

localStorage.setItem('get_list_center', document.body.innerHTML); 
var x = localStorage.getItem('get_list_center'); //GETS THE WHOLE HTML CONTENT CORRECTLY. 

그것은 그냥 그 어디 선가에서 콘텐츠를 받고있을 때 그렇지 않으면 내가 필요로하는 곳에서 내용이 끊어집니다. localstorage는 다른 곳에서는 조작되지 않습니다.

+0

중간 변수를 사용해 보셨습니까? 실제 코드에서 console.log를 사용하여 각 단계를 확인 하시겠습니까? –

답변

1

file: URL에서 검색하는 경우 이는 모두 Firefox로 전환해야하는 많은 이유 중 하나 일뿐입니다 - IE9 hates localStorage on local documents.

+1

아니요, IE9의 테스트 서버에 있으며 http : // URL을 통해 연결하고 있습니다. – l46kok

관련 문제