Пишу расширение для Хрома.
На странице Options
сохраняю некоторые параметры с помощью chrome.storage.sync.set
:
chrome.storage.sync.set({
x: document.getElementById('a').value,
y: document.getElementById('b').value,
z: document.getElementById('c').value
}, function() {...});
Дальше в Content script'е
хочу выполнить нужное мне в зависимости от значения этих параметров.
Сперва при загрузке нужной страницы достаю эти данные и присваиваю их значения некоторым переменным:
var baseA = "";
var baseB = "";
var baseC = "";
chrome.storage.sync.get({
x: "",
y: "",
z: ""
}, function(items) {
setValues(items.x, items.y, items.z);
});
function setValues(v1,v2,v3) {
baseA = v1;
baseB = v2;
baseC = v3;
console.log('baseA | ' + baseA);
console.log('baseB | ' + baseB);
console.log('baseC | ' + baseC);
}
Потом пытаюсь выполнить требуемое:
function doSomething() {
if (baseA !="") {
console.log('true ' + baseA);
}
else {console.log('false')}
}
doSomething();
Лезу в Options.html
, задаю параметры:
x = "aaa";
y = "bbb";
z = "ccc";
Лезу на страницу, где должен отработать контент скрипт и получаю в консоли вот такой результат:
false
baseA | aaa
baseB | bbb
baseC | ccc
То есть, функция doSomething()
срабатывает раньше.
Вызывать doSomething()
через setTimeout
неинтересно, поскольку контент скрипт выполняется после загрузки документа, а сколько она займет времени, неизвестно.
Я так понимаю, это все из-за того, что doSomething()
и chrome.storage.sync.get
выполняются асинхронно. А что делать, чтобы гарантированно получить значения параметров до того, как мне они потребуются?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникла следующая проблема: код реагирует на ЛЮБОЕ значение, а должен только если там есть английские буквы и/или цифры
Всем привет) в общем ситуация) в oracle есть переменная типа rowtype, как мне ее наполнить данными полученными с формы, с помощью PHPСейчас я делаю...
Есть строка вида firstName=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9&lastName=&patronymic=&phone=80004064909Как получить корректное значение firstName и phone, например? Это не get-запрос,...