Service-Worker feuert nicht immer - Druckversion +- Javascript-forum (https://javascript-forum.de) +-- Forum: Add-ons (https://javascript-forum.de/forumdisplay.php?fid=31) +--- Forum: Hilfe bei Add-ons programmieren (https://javascript-forum.de/forumdisplay.php?fid=49) +--- Thema: Service-Worker feuert nicht immer (/showthread.php?tid=2348) Seiten: Seiten:
1
2
|
Service-Worker feuert nicht immer - Oly - 14.05.2023 Hallo zusammen, habe ein kleines Problem und finde keine Lösung. Sobald mein Service-Worker inaktiv ist, geht nix mehr. Habe ein Kontent-Menu und es läuft alles gut, bis der Service-Worker einmal inaktiv ist. Was kann ich tun, damit er vorher aktiviert wird und meine Funktionen dann ihre Funktion aufnehmen? Hat jemand einen Tipp für mich? Code: function updateContextMenus(){ RE: Service-Worker feuert nicht immer - AndreasB - 15.05.2023 Es tut mir leid, aber mit Service Workern kenne ich mich nicht so gut aus. Ich versuche trotzdem zu helfen. Ein Paar Verständnisfragen: 1. Zeigt die Konsole irgendwelche 2. Den Code den ich hier sehe, ist das der komplette Code deines Workers? 3. Kannst du mal den Teil zeigen, wo der Worker Installiert und Aktiviert wird? RE: Service-Worker feuert nicht immer - Oly - 15.05.2023 Guten Morgen, ja das ist der Code und wüsste nicht das explizit etwas installiert wird ausser in der Manifest halt. Code: "background": { habe die Vermutung, das wenn der Service Worker einmal inaktiv ist/war das er mit irgendetwas nicht mehr klar kommt die ID zu ermitteln. Dann bekomme ich diesen Fehler. Error handling response: TypeError: Error in invocation of tabs.sendMessage(integer tabId, any message, optional object options, optional function callback): No matching signature. solange er aktiv ist und ich ihn aktiv halte, läuft alles gut Hatte schonmal die Idee, an den Worker eine Message zu senden, das er vorher aktiviert wird um das Problem zu lösen. und manchmal bekomme ich diese Fehlermeldung: Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist. Was meine Vermutung noch mehr bestärkt RE: Service-Worker feuert nicht immer - AndreasB - 15.05.2023 1. (15.05.2023, 07:44)Oly schrieb: habe die Vermutung, das wenn der Service Worker einmal inaktiv ist/war das er mit irgendetwas nicht mehr klar kommt die ID zu ermitteln. Das liegt woh daran. dass du keine tabId übergibst. Code: chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { Was gibt denn die Zeile Code: console.log("Background: items: "+items+" key: "+key+" text: "+text+ "ID: "+TABID); Und: 2: (15.05.2023, 07:44)Oly schrieb: Hatte schonmal die Idee, an den Worker eine Message zu senden, das er vorher aktiviert wird um das Problem zu lösen. Da bin ich wirklich überfragt. Ein wenig Googlen hat das hier ergeben: https://stackoverflow.com/questions/10994324/chrome-extension-content-script-re-injection-after-upgrade-or-install Hilft dir das weiter? Hört sich so an, als ob das deinem Problem sehr ähnlich ist. RE: Service-Worker feuert nicht immer - Oly - 15.05.2023 Code: console.log("Background: items: "+items+" key: "+key+" text: "+text+ "ID: "+TABID); Und ja, es wird daran liegen , das sich wohl mit den Tabs ändert und die ID nicht mehr zu ermitteln ist, warum auch immer. Den Link schaue ich mir noch an RE: Service-Worker feuert nicht immer - Oly - 16.05.2023 Moin Moin, habe es jetzt mal mit dem Code Snipes ausprobiert da er für mich logisch klang Code: chrome.runtime.onInstalled.addListener(installScript); doch leider läuft er nicht. Fehler Code: Error handling response: TypeError: chrome.tabs.executeScript is not a function ob dieser Code überhaupt mein Problem beheben könnte, weiss ich gerade nicht. So gut kenne ich mich da auch noch nicht aus. Habe aber rausgefunden, das er nur beim aller ersten Mal ausgeführt, wenn die gewünschte Seite aufgerufen wird. Da läuft eh alles noch tacko. Als zweites würde der Code nur wieder ausgeführt, wenn ich in den Erweiterungen die Erweiterung aktualisiere. Also brauche ich den Code nicht, denn wenn ich die Seite neu aufrufe oder die Erweiterung aktualisiere, läuft es ja eh. Aber das ist jetzt nur eine Theorie von mir, da ich gerade Planlos bin RE: Service-Worker feuert nicht immer - AndreasB - 16.05.2023 (16.05.2023, 06:30)Oly schrieb: FehlerBedeutet, dass das Objekt chrome.tabs keine Property mit dem Namen executeScript hat, oder dass der Wert der Property keine Funktion ist. Lass dir mal über Code: console.log(chrome.tabs); Übrigens, sollte File in File: contentjsFile kleingeschrieben werden. so: Code: { RE: Service-Worker feuert nicht immer - Oly - 17.05.2023 Moin, habe mal folgenden Code für Manifest V3 geändert. Code: chrome.runtime.onInstalled.addListener(installScript); Habe jetzt nur das Problem, das jetzt jedes Mal ein Fehler gefeuert wird, die nicht dem Filter von "host_permissions" " entspricht. Ausschnitt meiner Manifest V3 Code: "content_scripts": [{ RE: Service-Worker feuert nicht immer - Oly - 17.05.2023 habe es mit einer If Abfrage hinbekommen. Code: function installScript(details){ mal sehen ob es jetzt mein Problem lösen wird. RE: Service-Worker feuert nicht immer - AndreasB - 17.05.2023 Das sollte klappen. Da Code: chrome.scripting.executeScript Ein Promise zurückgibt, solltest du den auch mit: Code: chrome.scripting.executeScript( abfangen können. |