Я установил content_script «run_at»: «document_end». Он изменяет страницу, но я хочу, чтобы пользовательский параметр определял, следует ли вносить изменения или нет.
Сначала я попробовал chrome.storage.sync.get
. Он был объявлен в начале сценария, а код, запускающий модификацию, был объявлен в конце сценария. (Посередине находятся функции и переменные.) Но когда я его тестировал, обратный вызов sync.get
был вызван после кода модификации. То есть я получаю следующий результат:
Using the value.
Read value from storage.
, если код похож на тот, что внизу. Я думал, что это из-за задержки при получении данных с удаленного сервера Google, но когда я изменил sync
на local
, результат был таким же. Как я могу прочитать настройку перед выполнением фактической работы?
- Должен ли я начать работать, когда
storage.X.get
вернется, то есть при обратном вызове? Но это означало бы ненужную задержку перед началом работы. Если это единственный способ, я воспользуюсь этим. - Разве нет способа сделать
storage.X.get
быстрее, например, кэширование? - Если
storage.X.get
не поддерживает кеширование , как мне самому кешировать? Модификация выполняется только один раз для загрузки страницы, и сценарий содержимого воссоздается при каждой загрузке страницы. Есть ли способ сохранить переменную при загрузке страниц в скрипте содержимого, вроде переменной stati c?
.
var modify = true;
//initial read
chrome.storage.local.get("modifySetting",
function(data)
{
console.log("Read value from storage");
if("modifySetting" in data)
{
modifySetting = data["modifySetting"];
}
}
);
... lots of functions and variables ...
console.log("Using the value.");
if(modify)
{
doModification();
}