На высоком уровне вы захотите использовать chrome.storage для сохранения изменений при каждом нажатии флажка или при нажатии кнопки.
Если выЖелая сохранять каждый раз при нажатии на флажок, вы будете привязывать слушателя к событию изменения флажков.Затем вызовите chrome.storage для сохранения.
document.querySelectorAll('input[type="checkbox"]').forEach(elem=>{ //Get all input checkboxes
elem.addEventListener('change',(event)=>{ //Add a change listener
const key = event.target.name; //get the name value from the input element
const value = event.target.checked; // has it been checked?
chrome.storage.local.set({[key]: value}, ()=> { //save it
console.log('Value is set to ' + value);
});
})
})
Сохранение при нажатии кнопки будет аналогичным.Вы будете привязывать прослушиватель щелчков к кнопке, а затем в обратном вызове установите все флажки и зациклите их для сохранения.
Когда страница загружена, вам нужно будет извлечь все сохраненные значенияи установите состояние проверки.
chrome.storage.local.get(['goal1','goal2'],(results)=>{ //Fetch goal1, goal2, goalN... from chrome.storage
//.get returns a keyed object you can loop over.
Object.keys(results).forEach((goal)=>{
//Set the check state of each goal.
document.querySelector(`input[name="${goal}"]`).checked = results[goal];
})
})