2016-06-30 10 views
4

Ich versuche meine Chrome-Erweiterung in ein FireFox-Addon zu konvertieren. Das einzige Problem, das ich jetzt habe, ist die Kommunikation zwischen meiner Webseite und dem Hintergrundskript.Firefox Addon - Nachricht von der Webseite zum Hintergrundskript senden

In Chrome, das ist, was ich getan habe:

background.js

chrome.runtime.onMessageExternal.addListener(function(request) 
{ 
    if (request.hello) { console.log('hello received'); } 
}); 

Webseite

chrome.runtime.sendMessage(ChromeExtId, {hello: 1}); 

ich sah, dass onMessageExternal noch nicht in FireFox unterstützt wird, also bin ich völlig im Verlust, wie ich jetzt mit dieser Situation umgehen soll.

Jede Hilfe wäre sehr willkommen.

+1

Es scheint eine gewisse Verwirrung zu sein, wie zu was du erreichen willst - ein Firefox ** Add-on ** oder eine Firefox WebExtension? – Xan

Antwort

3

Sie können mit background.js von der Webseite über das Inhaltsskript kommunizieren. Versuchen Sie folgendes:

background.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
     if (request.hello) { 
      console.log('hello received'); 
     } 
    }); 

content-Skript

var port = chrome.runtime.connect(); 

window.addEventListener("message", function(event) { 

    if (event.source != window) 
     return; 

    if (event.data.type && (event.data.type == "FROM_PAGE")) { 
     console.log("Content script received: " + event.data.text); 
     chrome.runtime.sendMessage({ 
      hello: 1 
     }); 
    } 
}, false); 

Webseite

window.postMessage({ type: "FROM_PAGE", text: "Hello from the webpage!" }, "*"); 
+0

Alles, was ich mit diesem Code bekomme, ist: ReferenceError - Chrome ist nicht definiert: chrome.runtime.sendMessage (ChromeExtId, {Hallo: 1}); – Dave

+0

Bitte teilen Sie Ihre Manifest-Datei. Sie können browser.runtime.sendMessage anstelle von chrome.runtime.sendMessage in Firefox verwenden – sweeta

+0

Downvoting - Sie verstehen nicht [wie externe Kommunikation funktioniert] (https://developer.chrome.com/extensions/messaging # externe-Webseite). – Xan

Verwandte Themen