Получить состояние флажка в местном хранилище

У меня уже есть состояние флажка, расположенного в 1.html, хранящемся в localStorage (может быть установлен или не установлен).

В другом документе, 2.html, используя vanilla javascript, как я могу узнать, установлен ли флажок или нет?

Пробовал это, не повезло

if localStorage.getElementById("my_checkbox").checked {
    alert("checked") ;
}

а также

if localStorage.getItem("my_checkbox").checked {
    alert("checked") ;
}

Спасибо!

1 ответ

Решение

LocalStorage хранит только строковые значения, поэтому вам сначала нужно получить их:

var storedValue = localStorage.getItem('myCheckbox');

затем выяснить, если значение true был сохранен:

if(storedValue /* need to check for undefined */ && storedValue === 'true'){
    alert('checked');
}

Однако я бы порекомендовал хранить строковый объект и анализировать его, а не работать со строками. Примерно так должно начаться:

// set data:
var lsData = {};
lsData.myCheckbox = documnent.getElementById("my_checkbox").checked;
var stringifiedData = JSON.stringify(lsData);

localStorage.setItem('lsData', stringifiedData);
// get data:
var dataToParse = localStorage.getItem('lsData');
if(dataToParse){
    var lsData = JSON.parse(dataToParse);
    alert(lsData.myCheckbox);
}
Другие вопросы по тегам