Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать, чтобы скрипт "запоминалка" помнил данные со всех страниц? (https://javascript.ru/forum/misc/80919-kak-sdelat-chtoby-skript-zapominalka-pomnil-dannye-so-vsekh-stranic.html)

Lefseq 25.08.2020 18:45

Как сделать, чтобы скрипт "запоминалка" помнил данные со всех страниц?
 
Здравствуйте. Помогите, пожалуйста решить следующую задачу. Ниже скрипт, который запоминает данные из формы введенные посетителем.

Проблема в том, что если на сайте несколько таких запоминалок, на разных страницах. То Браузер запоминает только данные введенные на последней странице.

Подскажите, как сделать, чтобы можно было ввести данные на странице А, затем на странице В, И уже на странице С получить выдачу с обеих страниц А и В?


Скрипт на странице запоминалки:

(function main() {
        var form = document.querySelector("#user-greeting > form");
        
        form.addEventListener("submit", function(event) {
            event.preventDefault();
            var data = new FormData(form);
            localStorage.name = JSON.stringify(Object.fromEntries(data));
            form.submit();
        });
    })();


Скрипт на странице выдачи:

document.addEventListener("DOMContentLoaded", function() {
    if("name" in localStorage === false) return location.replace("./");
    const data = JSON.parse(localStorage.name || "{}");
    
    for(const [key, value] of Object.entries(data)) {
      for(const node of document.querySelectorAll(`[data-field="${key}"]`)) {
        node.textContent = value;
      }
    }
    });


Форма:

<section id="user-greeting">
<form action="">    
 
<input il-action="listen" autocomplete="firstname" name="firstname" type="text">
 
<input il-action="listen" autocomplete="lastname" name="lastname" type="text">
 
<button>Отправить</button>
 
</form>
</section>


На странице выдачи:

<span data-field="firstname"><span></span></span>
<span data-field="lastname"><span></span></span>

laimas 25.08.2020 19:00

Цитата:

Сообщение от Lefseq
если на сайте несколько таких запоминалок, на разных страницах. То Браузер запоминает только данные введенные на последней странице

name="firstname"
name="lastname"

А что у пользователя от страницы к странице меняется имя и фамилие?

voraa 25.08.2020 20:02

На странице А сохранять в localStorage.nameA,
На странице Б в localStorage.nameB


Часовой пояс GMT +3, время: 04:08.