реализована работа с сервером и прослушиватель внутренних сообщений.
2 - foreground.js - в котором есть ряд функций для работы со страницей, обращается к background.js через систему внутренних сообщений.
Оба скрипта имеют доступ к синхронизированному облаку Google в браузере, где храню и получаю ряд настроек или иных временных данных.
Суть такова что при запуске браузера background.js работает все время но он работает не в браузере а в "специальной песочнице" из которой может получать более высокого уровня доступ к API браузера и через систему сообщений обращаться к скриптам на других вкладках, так же передавать данные.
Он (background.js) же при загрузке страницы внедряет в нее скрипт foreground.js и начинает прослушивать сообщения от него, в зависимости от которых возвращает данные или выполняет получение данных и сохранение их в общее облако.
Проблема:
Так как я реализовал ряд функций для работы с автоматизацией страницы в foreground.js то при каждом переходе на новую страницу или в другой раздел сайта этот скрипт загружается по новой что логично.
Вопрос:
Как построить запрограммированный порядок выполнения ряда функций что бы манипулировать с DOM страницей полагаясь на данные с сервера получаемые от background.js ?
Я полагаю что будет логично записать все функции для взаимодействия с DOM во встраиваемом foreground.js там же реализовать прослушивание внутренних сообщений от background.js всю логику и порядок выполнения вынести в background.js в которой в тот или иной момент выполнять отправку сообщения на foreground.js переключая логику выполнения.
Я отдаю себе отчет что мало кто имеет опыт разработки расширений и тем более с таким функционалом, но все же я предполагаю что есть более эффективный способ обыграть задачу.
У меня к сожалению навыков маловато. Для моей задачи достаточно было взять уже готовое расширение и переписать две три строки. Я даже с этим два месяца возился. Задача ваша очень интересная, будь у меня время я бы изучил как все работает, но, к сожалению сейчас по копирайту заказов много и нет времени погружаться. Спасибо за приглашение. И кстати, думаю имеет смысл создать канал по расширениям. Пусть там будет только 10 человек первое время, но канал здорово помог бы начинающим всем. Вдобавок хочу добавить — попробуйте реализовать функционал, который у вас вот никак не получается через Selenium IDE. Это расширение, которое запоминает последовательность действий и запускает. Тоже работает через дефтулс. Не знаю подходит ли для вашей задачи, но все же можно посмотреть как реализуется та или иная задача.
У меня предыдущая версия на Selenium реализован десктоп скрипт, не совсем удобно, на край можно так же отдельным окном процесс запускать Selenium подобного процесса что будет управлять браузером но это дополнительное окно, я хочу обойтись без такого подхода хоть окно бы не помешало, хочу на чистом JS, за ответ спасибо, о группе тое подумал.
Обсуждают сегодня