Как получить доступ до созданного окна через расширение?

Суть такая. Захотел я попробовать сделать расширение для хрома. Долго искал варианты реализаций. Были те, которые использовали localStorage. Но мне они не понравились. Я все таки хотел более привычный способ управления состоянием как все привыкли. Нашел крутой вариант. Парень сделал псевдо-redux-store с помощью Proxy. Я пока с этим еще не особо дружу. Но главное - функционал так как в обычных SPA. Стор в БЭКГРАУНДЕ, там и редьюсеры и экшны. Их коннектом можно подключать в любой компонент (хоть ПОПАП, хоть КОНТЕНТ). Правда не смог сделать логгер и редукс-девтулс. На форуме пишут что этот функционал не работает. Но тогда зачем многие включают его в расширения. Ладно. Собственно основа - это https://github.com/tshaddix/react-chrome-redux и на чем делал пример.

Моя идея - расширить функционал ВКонтакте. Соответственно я добавляю в боковое меню свой тэг, по нажатию на который будут плюшки. Но пока не получил токен, дальше смысла делать нет. Так вот...

Я то его получаю. Вызываю экшн создания таба и далее в нажимаю разрешить. Линк в попапе меняется на линк с токеном. Как его получить? Мне надо найти созданную вкладку. Запихнуть в нее скрипт который будет уже слушать что я нажал (разрешить/запретить ну или за изменением линки) и записывать токен в стор и далее уже все легче. просто обращаемся к АПИ ВК и тянем и рендерим что нам надо.

Не разобрался как правильно искать новую вкладку и из нее посылать мэседж в стор.
Досконально доки Chrome Api не изучил и возможно где-то надо асинхронный код писать, а я не знаю об этом.

Вот картинка в полном размере.
В общем, если кто понял что я имею ввиду, буду благодарен за советы.

5aa882f8e53c7474720366.png5aa882f1a2a19805526777.png
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Непонятно, зачем такая огромная картинка, и что именно вы хотели на ней показать.

У таба есть параметр url.

Если вы хотите дождаться открытия вкладки, то да, асинхронный код конечно надо писать, и он у вас даже есть.
khcgFFD.png
Скорее всего он даже выдает вам очень информативную табличку типа такой:
YMFZv4a.pngНеизвестно, чего вы хотели добиться передавая таб в алерт вторым параметром.

Вот в этом табе и должен быть параметр url.

Вот еще всякое:
chrome.tabs.getSelected
chrome.tabs.getCurrent
chrome.tabs.get (по id)
chrome.tabs
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы