Ich möchte Text auf jeder Webseite protokollieren (mit Inhaltsskript, um die Auswahl zu treffen) in eine Datenbank, die eine Popup-Ressource ist, um Text an einer Stelle zu sammeln.
was ich versuche Ich erstelle eine Datenbank in einer Popup-Seite und versuche, sie über das Inhaltsskript zu verwalten, obwohl das Popup nicht aktiv ist (nicht geöffnet), indem chrome messaging verwendet wird, aber das popup keine Nachricht von content-script erhalten kann.
Ich bin mir nicht sicher, ob ich das Messaging zur Lösung dieses Problems nutzen kann. Gibt es eine bessere Lösung?
Ein Inhaltsskript kann keine Nachricht an ein unsichtbares Popup senden, da der Kontext des Popups inaktiv (geschlossen) ist, wenn er ausgeblendet ist.
Es gibt mehrere Lösungen für Ihr Problem.
Wenn Ihre "Datenbank" tatsächlich ein einfacher Schlüssel / Wert-Speicher ist, wechseln Sie zu chrome.storage
API. Diese API ist für das Inhaltsskript und verfügbar und enthält ein Ereignis, das Sie über Wertänderungen informiert.
Beispiel:
%Vor%Das Popup und der Hintergrund / Ereignis Seite teilen den gleichen Prozess. Jede mit dem Popup verknüpfte Datenbank ist auch für die Hintergrundseite verfügbar und umgekehrt. Eine allgemeine Übersicht über diese Methode:
chrome.runtime.getBackgroundPage
) und die Ergebnisse behandeln. Ich habe den Code für diesen Flow in diese Antwort .
Tags und Links google-chrome-extension