Есть ли определенная страница, на которой я должен получать данные API из моего проекта расширения Chrome? - PullRequest
0 голосов
/ 02 апреля 2019

Я делаю расширение для Chrome, которое извлекает данные JSON из API CoinMarketCap.com, и в настоящее время оно выполняется в фоновом скрипте.Я не уверен на 100%, какова цель этой страницы.Мне было интересно, могу ли я просто получить данные из всплывающего скрипта после того, как я нажму на кнопку в моем всплывающем окне?

Каждая кнопка представляет отдельную монету.Я в основном хочу узнать цену выбранной монеты и отобразить ее на любой странице, на которой находится пользователь, когда он дважды щелкает монету в текстовой статье.В конце концов, я хочу сделать так, чтобы вы могли дважды щелкнуть по любой монете, чтобы она показывала конвертацию цены в реальном времени, пока вы находитесь на веб-странице.

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Точка фоновой страницы должна быть всегда доступна (работает, если persistent: true, пробуждена / воссоздана для зарегистрированных событий, если persistent: false).

Время жизни всплывающего окна определяется его видимостью. В тот момент, когда пользователь щелкает и закрывает его, страница закрывается (как если бы вкладка с ней была закрыта), поэтому она больше не может обрабатывать какие-либо события, и ее состояние теряется.

Пока:

  1. Данные, которые вам нужно получить, должны быть получены / обработаны при открытом всплывающем окне
  2. Любое состояние, которое необходимо сохранить между отображаемыми всплывающими окнами, можно сохранить в chrome.storage

Тогда вам не нужна фоновая страница для извлечения. Всплывающая страница имеет такой же уровень доступа к API Chrome.

Однако рассмотрим следующий сценарий: предположим, что вы хотите, чтобы данные были готовы сразу после открытия всплывающего окна (по крайней мере, вы хотите, чтобы они были более свежими, чем «с прошлого раза»). Возможно, вы захотите делать периодические обновления, даже когда всплывающее окно закрыто для обновления данных. Вы можете сделать это надежно только с фоновой страницей (и, скажем, chrome.alarms API). Затем вы можете кэшировать последние доступные данные в chrome.storage и использовать их во всплывающем окне.

Фоновые страницы используются как код, который может периодически запускаться независимо от действий пользователя и всегда реагировать на события.

0 голосов
/ 05 апреля 2019

В соответствии с Изменениями в запросах перекрестного происхождения в скриптах содержимого расширений Chrome теперь вам нужно делать выборки в фоновом скрипте.Не в скрипте содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...