Сохранение настроек в popup.html (расширение Chrome)

Хочу сделать сохранение состояния чекбокса в окне popup.html. Проблема: при каждом открытии всплывающего окна чекбокс сбрасывается на состояние по умолчанию. При клике по чекбоксу его состояние сохраняется в localStorage. Проблема в том, чтобы восстановить сохраненное состояние при переоткрытии popup-окна.

Что пробовал: т.к. js просто так не работает, пробовал привязать функцию так:
document.addEventListener("DOMContentLoaded" , function () {
  document.getElementById("bd").addEventListener( "load" , clickTwo);
});

но никакой реакции на загрузку элемента (привязал к body, пробовал и к самому чекбоксу) нет. Хотя .addEventListener( "click" , clickCheckBox); работает нормально. Куда копать?
  • Вопрос задан
  • 2802 просмотра
Пригласить эксперта
Ответы на вопрос 1
@med1um
Как раз недавно решал похожую задачу так:

все изменения в popup.html записывал в хранилище:

var obj = {
   checkbox: 'checked'
};
chrome.storage.local.set(obj);


а на обработчик загрузки popup.html повесил чтение из хранилища:

chrome.storage.local.get('checkbox', function (result) {
    var checkboxState =  result['checkbox'];
    // result['checkbox'] вернёт undefined если такого имени ключа нет в хранилище
    // ... 
});


Нужно заметить, что chrome.storage АСИНХРОННЫЙ, и поэтому любое продолжение работы с прочитанным из хранилища результатом обязательно должно быть внутри callback-функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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