2 votes

worker.port.on ne reçoit pas d'événements

main.js code complet :

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 , extrait :

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

Le but est d'envoyer un événement de addButton.js a main.js en cliquant sur l'image et en affichant l'alerte avec l'argument. Si je décommente la ligne //window.alert(name); en addButton.js - Je recevrai l'alerte, c'est à dire onclick fonctionne bien. Mais le code décrit ci-dessus ne me montre pas d'alerte ou d'erreur dans la console. J'ai lu toute la documentation à ce sujet mais cela ne m'a pas aidé.

1voto

Wladimir Palant Points 34829

L'événement est envoyé correctement - c'est simplement qu'il n'y a pas d'événement. window et donc pas de window.alert() dans votre extension (si vous ouvrez la console d'erreurs en appuyant sur Ctrl-Shift-J, vous devriez voir cette erreur). Vous pouvez uniquement utiliser window.alert() dans le contenu scripts parce qu'ils sont attachés à une page web, dans les modules d'extension vous devriez utiliser console.log() à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X