wake-up-neo.com

Google Chrome-Erweiterung - Hintergrundskript

Nachdem ich mich mit Chrome Extension herumgespielt hatte, fiel mir auf, dass auf der chrome://extensions-Seite ein in der Manifestdatei initiiertes Hintergrundskript ausgeführt wird, das so aussieht, als würde man nur im Internet surfen oder auf einer anderen Seite neben der Erweiterungsseite das Hintergrundskript nicht ausführen .

Hier meine ich:

In meiner Manifest-Datei:

"background": {
    "scripts": ["jquery-latest.js","background.js"]
  },

Jetzt in der background.js-Datei:

$(document).ready(function(){
    alert("working");
});

Ich verwende eine einfache Benachrichtigungsfunktion, um zu sehen, ob dies funktioniert, und habe herausgefunden, dass alert("working"); nur angezeigt wird, wenn ich mich im chrome://extension-Verzeichnis befinde. Wenn ich zu google.com oder etwas Ähnlichem gehe, keine Zigarre.

Meine Frage ist, warum passiert das? Wie ändere ich es, damit es auf jeden Fall alarmiert wird?.

18
David Biga

Das background-Skript sollte als "im Hintergrund des Chrome-Browsers ausgeführt" angesehen werden.
Ihr gewünschter Effekt (Ausführen eines Skripts für jede Seite) ist eigentlich eine Aufgabe für Inhaltsskripts .

Weitere Informationen finden Sie unter https://developer.chrome.com/extensions/overview.html#Arch .

26
Rob W

Dies liegt daran, dass Sie die Hintergrundseite verwenden. Verwenden Sie stattdessen die Ereignisseite, indem Sie die manifest.json ...__ leicht ändern.

"background": {
    "scripts": ["jquery-latest.js","background.js"],
    "persistent": false
  },

weitere Informationen zu den Veranstaltungsseiten finden Sie hier: https://developer.chrome.com/extensions/event_pages

3
Ninoop p george

Der Effekt wird erzeugt, da immer, wenn Sie chrome://extensions laden, die Erweiterungen zum erneuten Laden gezwungen werden, dasselbe Verhalten mit STRG + R reproduziert werden kann. Die Hintergrundseite wurde also jedes Mal neu geladen, was bei anderen Seiten nicht der Fall ist. 

1
Rajan Verma

Das Hintergrundskript ist ein Skript, das im Hintergrund ausgeführt wird, um die Mehrheit der Chrome-Ereignisse zu verarbeiten, die Inhaltsskripts nicht ausführen können. Inhaltsskripte sind lediglich der Inhalt jeder Seite. Beide können nicht miteinander sprechen. Sie können den Skripten jedoch Listener zuweisen (z. B. chrome.browserAction.addListener(myFunction) spielt die Funktion, wenn Sie auf die Schaltfläche oben rechts auf dem Bildschirm der Erweiterung klicken), um herauszufinden, ob eine Schaltfläche gedrückt wurde oder ob sie überhaupt gesendet wurde eine Nachricht aus dem Hintergrundskript in die Seitenkonsole. 

https://youtu.be/ew9ut7ixIlI Dieses Video war eine großartige Einführung für Hintergrundskripte für mich, jedoch ist der Teil, in dem er über die Zuhörer zu reden beginnt, 6:30.

0
Sean