Я создал пользовательское меню, которое добавлено на страницу с помощью Chrome Content Content Script. Расширение отлично работает, и меню отображается так, как я хотел.Хромированный контентный скрипт для доступа к chrome.storage
Я хочу пойти немного дальше и добавить страницу опций, с вкл/выкл переключатель, который будет определять вар menuToggle к 1 или 0, и что вар будет присоединен к условию IF:
IF menuToggle == 1 // Do something
ELSE // console.log("var is 0, menu not loaded");
Я смог выполнить эту работу в среде расширения с помощью "localstorage.menuToggle = 1;", но я понимаю, что это будет работать только для экземпляра внутри моего расширения и что Content Script не сможет получить доступ к этому var.
Я прошел через official docs для API chrome.storage, но, честно говоря, я не очень понял, так как я на ранней стадии программирования.
Из того, что я увидел, что я должен использовать chrome.storage.sync.set для этого, но я не совсем понимаю, как установить это правильно и или как получить данные, когда внутри скрипта содержимого. Я пытался что-то вроде сильфона, но это не сработало:
chrome.storage.sync.set({'menuToggle': '1'}, function(){});
Вопрос здесь: Мне нужно определить функцию после sync.set ли? Можно ли просто хранить данные без каких-либо функций после него?
Беллоу код, который я использовал с LocalStorage:
var varMenuToggleDefault = 1;
localStorage.varMenuToggle = 1;
$("input:checkbox[name=onoffswitch]").change(function() {
if ($(this).is(':checked')) {
localStorage.varMenuToggle = varMenuToggleDefault;
console.log('Switch is ON');
console.log("Var is: " + localStorage.varMenuToggle);
} else {
localStorage.varMenuToggle = "0";
console.log('Switch is OFF');
console.log("Var is: " + localStorage.varMenuToggle);
}
if (localStorage.varMenuToggle == 1) {
// Load the menu
} else {
// console.log("varMenuToggle is 0. Menu NOT loaded");
};
Что я делаю неправильно/не хватает?
Спасибо вам за быстрый и простой ответ. Из того, что я понимаю, поскольку мне сначала нужно запросить ** sync.get ** для получения значения, мне нужно будет вставить условие if в сценарий содержимого внутри обратного вызова после того, как var будет извлечен, это правильно ? Что-то вроде: 'chrome.storage.sync.get ("menuToggle", функция (данные) { вар menuToggle = data.menuToggle; если (menuToggle == 1) {сделать что-то} }' – SoMeGoD
Я боролся битное тестирование этого, но с вашей помощью мне удается установить и получить значение для добавления или не меню. Я не знаю, если это лучший способ, но я использовал страницу событий, чтобы установить var в первый раз после рассрочки. – SoMeGoD