Chrome extensions

Chrome extensions
  • Програмне забезпечення
  • Google Chrome
  • програмування
  • браузери
  • Розширення для браузерів

Привіт Шановні! Відразу до справи. в моєму розширенні для Google Chrome мені потрібен постійно відкритий порт для зв'язку popup.html (тобто та частина яка з'являється при натисканні на іконку розширення в маніфесті це «default_popup») і частини яка відпрацьовує безпосередньо на самій вкладці (фонова частина в маніфесті це content_scripts ).

Зараз у мене в popup.html написаний код створює з'єднання (я так розумію він запускається при кліці на іконку розширення в момент показу popup), код такий:


тобто він створює порт і підписується на події відправки повідомлень.

А в фоновому скрипті (background.js) є такий код:

тобто він чекає від розширення події створення конекту і якщо воно виникає підписується на подію відправки повідомлення на створений порт.
Це все добре працює і вони «переплевивает» повідомленнями, АЛЕ ...

Увага питання:
Якщо я натискаю куди небудь на вкладці (на сайті) то вікно розширення природно зникає і з'єднання рветься. Всі інші спроби відправити що або з даного порту з backround.js закінчуються повідомленням в консолі «Uncaught Error: Attempting to use a disconnected port object"
Як мені зробити постійне з'єднання? Воно живе поки не закрито вікно розширення, як можна зробити так щоб я спокійно клацав по сайту а вікно розширення було відкрито?

P.S. Питання дуже терміновий, якщо потрібні уточнення пишіть в личку. Величезне дякую всім!

Схожі статті