Chrome Extension popup click in background abfangen
Hallo,
Ich arbeite gerade an einer Chrome Erweiterung. Ich habe da ein Problem mit dem Popup (wenn man auf das Icon der Erweiterung klickt). Dort habe ich einen Link der ein Screenshot automatisch erstellt und hochlädt.
Das funktioniert auch, leider nur wenn man das Popup auch auf lässt. Schließe ich es direkt da nach (einfacher klick woanders) wird das Script einfach beendet.
Gibt es eine Möglichkeit das ich den click auf den Link im Popup anders abfangen kann, um ihn z.B. in der background.js zu verarbeiten?
Gruß
Sven
Ich arbeite gerade an einer Chrome Erweiterung. Ich habe da ein Problem mit dem Popup (wenn man auf das Icon der Erweiterung klickt). Dort habe ich einen Link der ein Screenshot automatisch erstellt und hochlädt.
Das funktioniert auch, leider nur wenn man das Popup auch auf lässt. Schließe ich es direkt da nach (einfacher klick woanders) wird das Script einfach beendet.
Gibt es eine Möglichkeit das ich den click auf den Link im Popup anders abfangen kann, um ihn z.B. in der background.js zu verarbeiten?
Gruß
Sven
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 259421
Url: https://administrator.de/contentid/259421
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
mach es doch ohne Popup dann kannst du den Click auf das Icon der Erweiterung (browserAction) über die im Callback-Parameter definierten Funktion des Events verarbeiten und deinen Link dann via JavaScript aufrufen:
https://developer.chrome.com/extensions/browserAction#event-onClicked
Hinweis: Es darf kein Popup definiert sein damit du das Event abonnieren kannst.
Gruß jodel32
mach es doch ohne Popup dann kannst du den Click auf das Icon der Erweiterung (browserAction) über die im Callback-Parameter definierten Funktion des Events verarbeiten und deinen Link dann via JavaScript aufrufen:
https://developer.chrome.com/extensions/browserAction#event-onClicked
Hinweis: Es darf kein Popup definiert sein damit du das Event abonnieren kannst.
Gruß jodel32
Würde es dir denn was nutzen wenn du eine Funktion aus der Popup-Datei in der background.js triggerst wenn du auf den Link klickst ?
Das geht über Message Passing
Hier ein Beispiel:
http://stackoverflow.com/questions/5443202/call-a-function-in-backgroun ...
Das geht über Message Passing
Hier ein Beispiel:
http://stackoverflow.com/questions/5443202/call-a-function-in-backgroun ...
ob s so auch sauber ist, kann ich nicht beurteilen
Das ist gängige Praxis bei Popups die Funktionen aufrufen müssen die das Schließen des Popups überleben müssen. Also keine unnötigen Gedanken machen Freut mich das ich helfen konnte.
Gruß jodel32
Zitat von @EvilMoe:
EDIT: Etwas genauer: Ich sende beim klicken eines Links auf der popup einen sendRequest die in der background eine Funktion aufruft.
OKEDIT: Etwas genauer: Ich sende beim klicken eines Links auf der popup einen sendRequest die in der background eine Funktion aufruft.
Diese Funktion soll nun ein weiteren Request senden können (notification).
Warum rufst du die Funktion in der background.js dann nicht einfach erneut auf ?? Bzw. in welche Richtung soll dieser Request gesendet werden, an den Popup ?
Im obigen Link zu Message Passing kannst du nachlesen das es eine Callback-Funktion gibt über die du Responses der anderen Seite verarbeiten kannst. Somit kannst du das Popup über den Status informieren. Stichwort: sendResponse()