Java Firefox port.emit和port.on在扩展中不工作

Java Firefox port.emit和port.on在扩展中不工作,java,javascript,firefox-addon,firefox-addon-sdk,Java,Javascript,Firefox Addon,Firefox Addon Sdk,我正在尝试做一个firefox扩展。我需要与后台脚本(main.js)交换数据,所以我尝试使用端口,但它不起作用 //Content.js self.port.on("alert",function(){alert()});//Listen to message self.port.emit("message",{message:"Hello"}); 在main.js中,我就是这样添加worker的。因此,基本上,当内容脚本发送“消息”时,后台脚本发送“警报”,内容脚本发送警报。那不会发生

我正在尝试做一个firefox扩展。我需要与后台脚本(main.js)交换数据,所以我尝试使用端口,但它不起作用

//Content.js
self.port.on("alert",function(){alert()});//Listen to message 
self.port.emit("message",{message:"Hello"});
在main.js中,我就是这样添加worker的。因此,基本上,当内容脚本发送“消息”时,后台脚本发送“警报”,内容脚本发送警报。那不会发生

//main.js

pageMod.PageMod({
  include: ["https://play.google.com/*"],
  contentScriptWhen: 'ready',
  contentScriptFile: [data.url("jquery.js"),data.url("jquery.knob.js"),data.url("purl.js"),data.url("content.js")],
  contentScriptOptions: {
    inUrl: data.url("in.png"),
    outUrl: data.url("out.png"),
    logoUrl: data.url("logoimage.png")
  },
  contentStyleFile: [data.url("css/inject.css")],
  onAttach: function(worker) {//Ttach
    alert("hello there")
    worker.on("message",function(){

        worker.emit("alert",{message:"Hello"});
    })

  }
});

什么也没发生。我无法知道是否发送了第一条消息(从脚本到扩展名)。我做错了什么?

代码应该是worker.port.emit和worker.port.on,而不是worker.on和worker.emit

pageMod.PageMod({
  include: ["https://play.google.com/*"],
  contentScriptWhen: 'ready',
  contentScriptFile: [data.url("jquery.js"),data.url("jquery.knob.js"),data.url("purl.js"),data.url("content.js")],
  contentScriptOptions: {
    inUrl: data.url("in.png"),
    outUrl: data.url("out.png"),
    logoUrl: data.url("logoimage.png")
  },
  contentStyleFile: [data.url("css/inject.css")],
  onAttach: function(worker) {//Ttach
    alert("hello there")
    worker.port.on("message",function(){
//THIS IS THE CORRECT CODE
        worker.port.emit("alert",{message:"Hello"});
    })

  }
});

问题相当简单。worker.port.emit worker.port.on而不是worker.emit和worker.on。您可以在答案中发布工作代码吗?这将有助于其他人来到这里。