Я пишу расширение Chrome, и в одной его части мне нужно получить текущий заголовок и URL табуляции при нажатии кнопки на всплывающей странице.
Я работал с системой передачи сообщений Chrome раньше и, после долгих усилий, сумел заставить ее работать, во многих случаях. Тем не менее, мне никогда не приходилось использовать их со всплывающими страницами, и из того, что я читал, это гораздо труднее сделать.
Временная шкала, которую мне удалось выяснить до сих пор, такова:
-
popup.html
/popup.js
: Кнопка нажата -
popup.html
/popup.js
: Запрос/сообщение отправляется на контент script -
contentScript.js
: Запрос/сообщение получено со всплывающей подсказки -
contentScript.js
: Заголовок и URL текущей вкладки хранятся в переменной -
contentScript.js
: 2 переменные отправляются как стробированный ответ -
popup.html
/popup.js
: 2 переменные анализируются из ответа
Обычно я мог бы это понять, но я прочитал несколько вещей, которые запустили гаечный ключ в работе, например:
-
chrome.tabs.getSelected
может использоваться только на исходной странице / script. Означает ли это, что скрипты содержимого вообще не нужно использовать? - Сообщения не могут быть отправлены непосредственно из содержимого script на всплывающую страницу, они должны пройти через фоновый рисунок
- Всплывающее окно должно быть подтверждено как существующее до того, как сообщение может быть передано ему (хотя, я думаю, я знаю, как это сделать)
Я уже нашел систему передачи сообщений Chrome довольно сложно, но это меня полностью смутило. Следовательно, этот пост.