2

main.js vollständigen Code:worker.port.on wird nicht Ereignisse

const data = require("self").data; 
const pageMod = require("page-mod"); 
pageMod.PageMod({ 
    include: "*", 
    contentScriptFile: data.url("addButtons.js"), 
    onAttach: function(worker) { 
     worker.port.on("testEvent", function(name) { 
      window.alert(name); 
     }); 
    } 
}); 

addButtons.js, Extrakt:

<...> 
var img=document.createElement("img"); 
img.setAttribute('src', '...');     
    img.onclick=function() { 
      var name='printMe'; 
      self.port.emit("testEvent", name); 
     // window.alert(name); 
     } 
<...> 

Ziel addButton.js-main.js durch Anklicken img Ereignis zu senden und Zeige Warnung mit Argument. Wenn ich Zeile //window.alert(name); in addButton.js auskommentiere, werde ich die Warnung erhalten, d. H. onclick Funktion funktioniert gut. Aber oben beschrieben Code zeigt mir keine Warnung oder irgendwelche Fehler in der Konsole. Ich habe die gesamte Dokumentation gelesen, aber es hat nicht geholfen.

Antwort

1

Das Ereignis ist gut gesendet - es ist einfach, dass es keine window und folglich keine window.alert() in Ihrer Erweiterung gibt (wenn Sie Error Console durch Drücken von Ctrl-Shift-J öffnen, sollten Sie diesen Fehler sehen). Sie können window.alert() in Inhaltsskripten nur verwenden, weil sie an eine Webseite angehängt sind. In Erweiterungsmodulen sollten Sie stattdessen console.log() verwenden.

+0

ja, Konsole funktioniert, vielen Dank – gvidik

+0

@gvidik: Fühlen Sie sich frei, die Antwort zu akzeptieren, wenn es Ihr Problem gelöst hat. Siehe http://stackoverflow.com/faq#howtoask. –

+0

@gvidik, es ist erwähnenswert, dass keine der normalen Dokument-API standardmäßig in main.js verfügbar sind. – canuckistani