![Extensii Chrome (întrebări) Extensii Chrome](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)
- software-ul
- Google Chrome
- programare
- browsere
- Extensiile browserului
Buna ziua! Du-te la punct. în extensia mea pentru Google Chrome Am nevoie de un port permanent deschis pentru popup.html comunicare (adică partea care apare când faceți clic pe pictograma extensiei din manifest este «default_popup») și o parte care lucrează în mod direct pe tab-ul (fundal parte din manifest este content_scripts ).
Acum trebuie să popup.html scrie cod pentru a crea o conexiune (așa cum am înțeles că este rulat când faceți clic pe pictograma extensiei când se afișează pop-up), codul este după cum urmează:
adică, creează un port și subscrie la evenimentele de trimitere a mesajelor.
Și în script-ul de fundal (background.js) există un astfel de cod:
adică se așteaptă de la extinderea evenimentului de creare a conexiunii și, dacă apare, este abonat la evenimentul de trimitere a unui mesaj către portul creat.
Toate acestea funcționează bine și "scuipă" mesaje, dar ...
Atenție la întrebarea:
Dacă fac clic pe undeva pe o filă (la fața locului), apoi extinde fereastra dispare în mod natural și pauzele de conectare. Toate celelalte încercări de a trimite ceva la capătul port al mesajului backround.js în consolă «Eroare negestionat: Încercarea de a folosi un obiect de port deconectat“
Cum fac o conexiune permanentă? Este în viață până când fereastra de extensie este închisă, cum pot să fac acest lucru pentru a face clic pe liniște pe site și extensia ferestrei a fost deschisă?
P.S. Întrebarea este foarte urgentă, dacă aveți nevoie de clarificări, scrieți-vă personal. Vă mulțumesc foarte mult!