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 は最大 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 は他の場所で改ざんされていません。

4

1 に答える 1

1

file:URLから閲覧している場合、これはFirefoxに切り替える必要がある多くの理由の1つにすぎません。IE9はlocalStorageローカルドキュメントを嫌っています

于 2013-02-25T00:45:13.770 に答える