Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2016, 13:57
Новичок на форуме
Отправить личное сообщение для akokarev Посмотреть профиль Найти все сообщения от akokarev
 
Регистрация: 20.06.2016
Сообщений: 4

Chrome расширение. Пересылка сообщений между popup.js и conten.js чеhtp background.js
Добрый час!
Помогите с расширением для Google Chrome.
Подробности...
Есть уже рабочее расширение-помогалка для сдачи тестов в системе онлайн обучения. Работает так: на странице с вопросами парсит вопросы и варианты ответов, ищет в localStorage вопрос и, если найден в базе, подсвечивает правильные ответы. Вопросы ищет по id (в теге с вопросом явно указан), в localStorage хранит id как ключ и JSON строку с массивом ответов. По окончании теста выводится результаты вместе с правильными ответами. Сюда подгружается другой скрипт, который сохраняет в localStorage найденные правильные ответы
Суть проблемы:
Хочу сделать синхронизацию ответов из localStorage с базой на сайте. Для этого сделан popup.html+popup.js с кнопкой синхронизировать, но проблема в том, что этот popup.js выполняется в другом контексте и localStorage у него пустой... Нашел возможность отправки сообщений между popup и background и между content и background. Но не могу разобраться как переслать сообщение от popup к content. На одноразовых сообщениях ни как не получается сделать, а вот на долгоживущих соединениях получилось - в background создаю две переменные content_port и popup_port, при соединении записываю в них подключенные порты, все работает, НО! Все хорошо, если открыта одна вкладка, а если открыты 2 вкладки, то возникают ошибки...
Собственно вопрос:
1) Подскажите, как правильно организовать прокси между popup и content?
2) Где правильнее хранить ответы - в localStorage у content или у background?
3) Как лучше отправить весь localStorage на сервер? Пока прохожу циклом весь localStorage и каждый item отправляю отдельным post запросом XMLHttpRequest(), но хотелось бы одним файлом.
4) Как лучше передать вcю базу с сайта?

P.S.: сорри за много букафф =D
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2016, 14:56
Новичок на форуме
Отправить личное сообщение для akokarev Посмотреть профиль Найти все сообщения от akokarev
 
Регистрация: 20.06.2016
Сообщений: 4

Мысля как реализовать
Придумал сделать так: из content и popup при запуске отправлять в background запрос идентификатора через одноразовое сообщение, а далее создавать постоянное подключение с этим идентификатором. В background придется хранить массив идентификаторов и соответствующих им подключений. Завтра попробую реализовать и, наверное, выложу шаблон пустого проекта с примером.
А данные всеже лучше хранить в localStorage у background'а, ибо скрипты самого сайта могут легко спалить присутствие читера.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск