![Chrome extensions (питання) Chrome extensions](https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?url=https://habrastorage.org/webt/59/d1/70/59d17091bbda1288423875.png&container=focus&refresh=2592000&resize_w=32)
- Програмне забезпечення
- 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. Питання дуже терміновий, якщо потрібні уточнення пишіть в личку. Величезне дякую всім!