2

这在 Chrome 和 Firefox 中完美运行:

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");在控制台中单独获取,我可以在本地存储中获取元素和内容。

错误画面

当我尝试将其分配innerHTML为本地存储时,发生未知异常。是什么赋予了???

编辑:根据评论的建议,我尝试在一个单独的变量中获取本地存储,然后在 innerhtml 中分配该变量。事实证明,localstorage 确实在检索 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]]

我的印象是 localstorage 最多可以保存 5 MB 的文本,Chrome 和 Firefox 就是这种情况,但 IE9 可能不是这种情况(编辑:谷歌搜索后,IE9 最多支持 10MB很明显它是别的东西) . 我能做些什么来解决这个问题?

Edit2:我已经验证 localStorage 正确分配了整个 HTML 内容,如果在设置内容后立即检索它:

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

只是当我从需要它的其他地方获取内容时,内容会被切断。localstorage 不会在其他任何地方被篡改。

4

1 回答 1

1

如果您从file:URL 浏览,这只是我们都应该切换到 Firefox 的众多原因之一—— IE9 讨厌localStorage本地文档

于 2013-02-25T00:45:13.770 回答