Задать вопрос
@Alk90
php, mysql, jquery, css, html, api

Как лучше уникализировать страницу по адресной ссылке?

Всем привет! Мне нужно записать данные формы в LocalStorage но значение формы должно зависеть от адреса страницы с параметрами.
Поэтому самым очевидным способом будет что-то вроде
window.localStorage.set(window.location.href, formData);
Но мне кажется этот вариант не правильным, т.к. там могут присутствовать спецсимволы, да и отсутствуют параметры которые идут после знака "?".
Подскажите, как мне лучше поступить в такой ситуации
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@Azperin
Дилетант
Можешь такую матрешку использовать в виде ключа
window.btoa( encodeURI( window.location.toString() ) );
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Вот так делать НЕ надо:
window.localStorage.set(window.location.href, formData);


В качестве ключа надо использовать не адрес целиком, а только ту его часть, что отвечает за адрес страницы:
window.location.pathname

Итого, правильный вариант:
// Записать объект с данными в память:

data = {
    'test': 123
};

localStorage.setItem(location.pathname, JSON.stringify(data));

// Извлечь объект с данными из памяти:

data = JSON.parse(localStorage.getItem(location.pathname));

console.log(data);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы