Здравствуйте!
Есть небольшое расширение для хрома, с помощью которого я хочу индивидуально улучшить интерфейс некой страницы.
Принцип действия:
При включенном расширении постоянно работает фоновой скрипт (background.js), который внедряет на разрешенную мною веб-страницу мою функцию (из другого скрипта, main.js) и вызывает её по событию onload.
popup.html:
В расширении есть страница настроек. В ней прописан checkbox, который отвечает за запуск моей внедряемой функции или её остановку. В приложении к теме картинки интерфейса страницы настроек расширения.
main.js:
Значение checkbox`a я сохраняю в localStorage. Состояние checkbox`a (true / false) изменяется в зависимости от данных в localStorage.
Не получается:
Достать это значение из localStorage и использовать его в проверке.
Пример:
// сохраняю состояние checkbox`a при клике на него
function saveOPT(){
var CHBX = document.getElementById('myCHBX').checked;
localStorage.setItem('keyCHBX', CHBX);
// подсказка о том что я сохранил
document.getElementById('result').innerHTML = "saved: " + localStorage.getItem('keyCHBX');
}
// достаю значение из localStorage и меняю состояние checkbox`a
function resOPT(){
var valCHBX = localStorage.getItem('keyCHBX');
// если в хранилище нет такого ключа, записываем его
(valCHBX == null) ? valCHBX = false : '';
// т.к. в хранилище записывает текст, делаю доп. проверку
(valCHBX == "true") ? valCHBX = true : valCHBX = false;
document.getElementById('myCHBX').checked = valCHBX;
document.getElementById('result').innerHTML = "already: " + valCHBX;
}
// функция, которая внедряется, и для которой мне не получается сделать проверку.
// Если делать так :
var valCHBX = localStorage.getItem('keyCHBX');
(valCHBX == "true") ? valCHBX = true : valCHBX = false;
function main() {
if(valCHBX){
alert('checked = true');
} else {
alert('checked = false');
}
}
// Функция не выполняется (т.е. выводит checked = false), т.к. ищет keyCHBX в хранилище сайта, на котором я запускаю расширение. Соотв. данного ключа там нет.
// Если делать так :
var valCHBX = true; или var valCHBX = false;
function main() {
if(valCHBX){
alert('checked = true');
} else {
alert('checked = false');
}
}
// Проверка происходит нормально.
Как мне выполнить проверку с моими данными, в зависимости от состояния checkbox`a?