Chrome extensions storage

200
09 марта 2018, 16:44

Подскажите, что я делаю не так? Или посоветуйте, как нужно делать.. Имеем структуру расширения:

  • inject.js - скрипт, которая внедряется на сайт через chrome.tabs.executeScript
  • options.js - скрипт, который открывается, если нажать "Параметры" в меню расширения
  • popup.js - скрипт popup
  • events.js - background page

Всё вместе использует 2 объекта для хранения настроек, назовём их object_1 и object_2, которые я сохраняю и загружаю через chrome.storage.local get/set

Суть такова: когда происходит инжект скрипта на страницу, я должен получить настройки для этой страницы, я отправляю
chrome.runtime.sendMessage(myExtensionId, {action: 'loadConfig'}, cb)
и в cb присваиваю объекту globalConfig = {object_1:null, object_2:null}
соответствующие значения, т.к. это работает асинхронно, то я испытываю трудности, а именно оно может работать через раз, либо вообще не работать.
Или вот, я в options.js сохраняю дополнительные настройки в object_2, в колбэке storage.local.set получаю сообщение, о том что настройки сохранены, перезагружаю страницу с inject.js - но не получаю этих настроек, а получаю их спустя пару перезагрузок. Короче вопрос: как получать настройки "на лету"? Вот изменил я их в popup.js или options.js и хочу что бы inject.js их перезагрузил и начал использовать, не выжидая кучу времени.

READ ALSO
Jquery проблема

Jquery проблема

Почему Jquery не работает? Значит скачал я js файл jquery, подключил к сайту, написал код в отдельном файле js и тоже его подключил

225
Валидация формы при помощи replace

Валидация формы при помощи replace

Удаляю из поля input ненужные символы так:

204
Ajax data возвращает весь html

Ajax data возвращает весь html

Сделал Ajax запрос после отправки и проверки на валидность инпутов

225