Wie kommuniziert man eine einfache HTML-Seite, die eine Schaltfläche mit einem Zusatzskript enthält, das port.emit verwendet?

8

Ich versuche mein erstes Firefox-Add-On zu implementieren, also bin ich ein absoluter Anfänger.

Ich habe über die [page-mod] [1] Dokumentation auf der Firefox-Webseite gelesen. Ich verstehe immer noch nicht, wie es geht.

Grundsätzlich in einer grundlegenden HTML-Seite habe ich eine Schaltfläche, was ich will, ist das Folgende:

Wenn ich auf die Schaltfläche klicke, ruft die Schaltfläche die Javascript-Funktion runBash() auf (innerhalb der HTML-Seite deklariert) und diese Funktion kann mit index.js (Add-On-Skript) kommunizieren. Es scheint einfach, aber es macht mich verrückt.

[AKTUALISIERTER CODE]

index.js / main.js Zusatzcode:

%Vor%

content-script.js:

%Vor%

bash.html:

%Vor%     
Gera 28.04.2016, 17:51
quelle

1 Antwort

4

Sie mischen also Ihre Haupt-JS-Datei, die im Grunde Ihre Hintergrundseite für die Erweiterung ist, und das Inhaltsskript, das das injizierte JS sein wird. In Ihrer Datei package.json geben Sie main :

an %Vor%

In main.js dürfen Sie require und andere SDK-Funktionen verwenden. Für Ihre pageMod müssen Sie eine separate JS-Datei (das Inhaltsskript) angeben, die in den HTML-Code des Ziels von pageMod :

eingefügt wird

BEARBEITEN: Fügen Sie das Inhaltsskript nicht mit einem <script> -Tag in Ihrem HTML ein, es wird von pageMod :

eingefügt %Vor%

Alternativ dazu verwende ich auch worker.on (main.js) und self.postMessage (content-script.js). Beispiel:

%Vor%

Dann in content-script.js :

%Vor%     
chrisd1100 28.04.2016 21:19
quelle