chrome-Erweiterung OnMessage
Ich bin ein Neuling in Chrome-Erweiterungen, und natürlich hielt ich mich bei jedem Schritt, aber dieser ist besonders hart. Vielleicht ist es eine dumme Fehler, aber hier ist, was ich versuche zu tun:
Senden einer einfachen Nachricht, die aus dem Inhalt Skript, um den hintergrund der Seite und behandeln Sie es als eine variable. Also ich habe das in meinem content-Skript:
$(document).ready(function() {
var d = document.domain;
chrome.extension.sendMessage({dom: d});
});
Und in meinem hintergrund dieses script:
chrome.extension.onMessage.addListener(function(request) {
alert(request.dom);
});
So, der Alarm funktioniert einwandfrei. Aber es "geht" auf die Seite, ich bin browing und nicht die HTML-Erweiterung, das bedeutet, anstelle von poping-up beim Klick auf my-Erweiterung-Taste, es erscheint, wie es codiert wurde in das content-Skript, wenn die Seite geladen wird.
Bitte, jede Hilfe würde geschätzt werden.
- Ich bin nicht sicher, was Sie erwarten, aber basierend auf
But it "goes" to the page I am browing and not the HTML extension, this means, instead of poping up when clicking on my extension button, it will appear as it was coded into the content script when the page loads.
ich nehme an, Sie erwarten, dass alert() erst, nachdem Sie klicken Sie auf die Erweiterungs-Schaltfläche ? Wenn es wahr ist, dann sind Sie schief gehen, weil Sie Hinzugefügt haben, die Zuhörer auf hintergrund-Skript nicht im browser-action und dies ist das erwartete Verhalten, wäre es Super, wenn du posten können alle Ihr zugehörigen code und die Erwartungen klar, damit wir Ihnen helfen können. - Vielen Dank für die Beantwortung. Im Grunde, was ich versuche zu tun ist, übergeben Sie einfach einen Wert aus dem Inhalt Skript, um die hintergrund-Schrift. Dann weisen Sie es einer Variablen zu und Griff es an (im hintergrund-Skript), dann zeigen Sie den Wert in das popup beim Klick auf my-Erweiterung-Symbol. Der code, den ich gepostet haben, bevor, ist im Grunde alles, was ich habe, so weit. Wie kann ich es hinzufügen, um die browser-Aktion? Ganz einfach: Wie würden Sie das tun, was ich versuche zu tun? Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Demo-Erweiterung ist wie folgt
Dateien & Rollen
a) manifestieren.json (Dokumentation)
b) myscript.js (Inhalt Skript Sehen Dokumentation)
c) background.js (Hintergrund HTML-Datei Sehen Dokumentation)
d) popup.html (Browser-Action-Popup-Sehen Dokumentation)
e) popup.js (Rezeptor der Geänderte Wert aus Hintergrund-Seite)
manifestieren.json
Registriert alle Dateien zu manifestieren(Viz hintergrund,popup,content scripts) mit Berechtigungen
myscript.js
Verwendet sendMessage() API für die Kommunikation mit hintergrund-Seite
background.js
Hinzugefügt von Ereignis-Listenern für Inhalte und popup.js mit onMessage() und die Software onConnect() Zuhörer
popup.html
Sample-browser-action-HTML-Seite registrieren popup.js um zu vermeiden, Inline-Scripting
popup.js
Verwendet Port\Langlebigen Verbindung für die Kommunikation mit hintergrund-Seite zum abrufen der Ergebnisse
Hoffe, das hilft, lassen Sie mich wissen, wenn Sie weitere Informationen benötigen
chrome.extension
wurden, da veraltet. Verwendenchrome.runtime
- äquivalente.