Erneutes Laden einer Chrome-Erweiterungsinhalt-Skriptausführungsumgebung

9

Ich möchte den Effekt von window.location.reload() nachahmen, aber nur für die "isolierte Welt", in der mein Inhaltsskript läuft. Das heißt, entfernen Sie alle vorhandenen JS, insbesondere Callbacks und Event Bindings. Gibt es einen schönen Weg, dies zu tun?

Hinweis: chrome.runtime.reload() funktioniert nicht dafür; Es bewirkt, dass die Erweiterung und das Hintergrundskript neu geladen werden, aber bestehende Inhaltsskripte werden erst wieder geladen, wenn der Benutzer aktualisiert wird.

    
Jaiden Mispy 14.10.2013, 06:32
quelle

1 Antwort

4

Soweit ich das beurteilen kann, gibt es keine automatische Möglichkeit, Inhaltsskripte, beispielsweise während eines Erweiterungsupdates, erneut zu injizieren. Sie können alle Tabs finden, deren URL mit dem Muster übereinstimmt, das Sie benötigen, und die Inhaltsskripte programmgesteuert mithilfe von chrome.tabs.executeScript .

Beachten Sie, dass diese Methode das Hinzufügen einer Berechtigung für dasselbe URL-Muster wie das von Ihrem Inhaltsskript verwendete erfordert.

Manifest.json:

%Vor%

Hintergrund.js:

%Vor%     
Métoule 14.10.2013 08:55
quelle