これは、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 は最大 10 MB をサポートしているため、明らかに別のものです) . この問題を解決するにはどうすればよいですか?
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 は他の場所で改ざんされていません。