2016-07-09 20 views
1

Ich möchte Hintergrund-Skript nur dann dynamisch ausführen, wenn es erforderlich ist.Wie kann ich Hintergrundskript dynamisch in der Chrome-Erweiterung ausführen?

Mein Hintergrundskript erstellt ein Kontextmenü basierend auf einem Array, das in localStroage gespeichert ist. Das Hintergrundskript wird beim Laden nur einmal ausgeführt, und ich möchte das Skript erneut ausführen, wenn ein Benutzer ein Array in localStroage aktualisiert. Wie kann ich das tun?

+0

Unklar, was du damit meinst, denn "wenn es nötig ist" ist etwas, das nur für dich einen Sinn ergibt. Bearbeiten Sie Ihre Frage, um eine längere Erklärung zu geben. – Xan

+0

Das ist besser, aber nicht genau genug. Wie (wo) kann ein Benutzer das Array aktualisieren? – Xan

+0

@xan Ein Array enthält im Grunde Objekt und Benutzer erstellen ein neues Objekt und speichern es, indem Sie auf die Schaltfläche auf der UI-Seite klicken. dann in popup.js Ich aktualisiere dieses Array und jetzt möchte ich wieder Hintergrundskript ausführen. – shuboy2014

Antwort

1

Event pages wurden speziell erstellt, um "Hintergrundseiten, die die meiste Zeit nichts tun" Problem zu adressieren. Sie werden nach ein paar Sekunden Inaktivität entladen und erneut ausgeführt, wenn eines der Ereignisse eintritt, für die Handler registriert sind.

Lesen Sie die Dokumentation - es gibt Nuancen, wie sie strukturiert sein müssen. Außerdem können Sie speziell für Kontextmenüs den Parameter onclick nicht verwenden und stattdessen das Ereignis chrome.contextMenus.onClicked verwenden.

Sie können Messaging verwenden, um Ihre Ereignisseite aus anderen Erweiterungskontexten zu aktivieren. Ziehen Sie auch die Verwendung von chrome.storage API anstelle von localStorage in Betracht, die mit einem chrome.storage.onChanged Ereignis geliefert wird.

Verwandte Themen