Местное хранилище постоянных текстовых сообщений не работает - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь сделать содержимое в текстовой области постоянным, то есть оставаться при перезагрузке страницы.Вот мой код:

<!DOCTYPE html>
<html>
   <body>
      <textarea id="txt" onchange="store()"></textarea>
      <div id="err"></div>
      <script>
         function store() {
         if (typeof(Storage) !== "undefined") {
         	var textarea = document.getElementById("txt")
             localStorage.setItem("text", txt.value);
             document.getElementById("txt").innerHTML = localStorage.getItem("text");
         } else {
             document.getElementById("err").innerHTML = "Localstorage not supported";
         }
         }
      </script>
   </body>
</html>

Заранее спасибо!

1 Ответ

0 голосов
/ 22 октября 2018

Ваша функция вызывается только при изменении textarea, вам также нужно вызывать ее при загрузке страницы.Для этого вам нужно прослушать событие DOMContentLoaded .

<!DOCTYPE html>
<html>
   <body>
  <textarea id="txt"></textarea>
  <div id="err"></div>
  <script>
  var textarea = document.getElementById("txt");
  textarea.addEventListener('input', writeLocalStorage);

  function writeLocalStorage() {
     if (typeof(Storage) !== "undefined") {
         localStorage.setItem("text", textarea.value);
     } else {
         document.getElementById("err").innerHTML = "Localstorage not supported";
     }
  }

  function readLocalStorage() {
     if (typeof(Storage) !== "undefined") {
         textarea.value = localStorage.getItem("text");
     } else {
         document.getElementById("err").innerHTML = "Localstorage not supported";
     }
  }

  // `DOMContentLoaded` may fire before your script has a chance to run, so check before adding a listener
  if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", readLocalStorage);
  } else {  // `DOMContentLoaded` already fired
      readLocalStorage();
  }
  </script>
   </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...