这在 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 </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 不会在其他任何地方被篡改。