Ich portiere meine Chrome-Erweiterung zu einer Firefox-WebExtension, so weit so gut, dass ich problemlos mit meinen Inhalten, Hintergrundskripten und meiner ausführbaren Datei kommunizieren kann.Firefox WebExtension: Überprüfen, ob die Erweiterung bereits existiert
Ich möchte jetzt die Existenz meiner Erweiterung überprüfen. Dies ist eigentlich die Art, wie ich es tun:
Browser Skript
// browser-script.js
var isExtensionHere = false;
$("#is-extension-here").click(function(){
console.log("Check the existence of the extension");
window.postMessage({
direction: "from-page-script",
message: "areYouThere"
}, "*");
});
window.addEventListener("message", function(event) {
if (event.source == window &&
event.data.direction &&
event.data.direction == "from-content-script") {
if(event.data.message == "OK") {
isExtensionHere = true;
}
}
});
Inhalt Script
// content-script.js
window.addEventListener("message", function(event) {
if (event.source == window &&
event.data.direction &&
event.data.direction == "from-page-script") {
if(event.data.message == "areYouThere") {
window.postMessage({
direction: "from-content-script",
message: "OK"
}, "*");
}
}
});
Es funktioniert gut, wenn die Erweiterung hier. Aber wenn es nicht ist, bekomme ich offensichtlich keine Antwort von meiner Erweiterung. Wie kann ich dann wissen, wie man ein Popup oder eine Nachricht auslöst, wenn die Erweiterung nicht hier ist?
Vielen Dank für Ihre schnelle und erschöpfende Antwort! – Thordax