Javascript 从内容脚本对插件函数的firefox扩展调用

Javascript 从内容脚本对插件函数的firefox扩展调用,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我想从内容脚本中运行插件函数[main.js]。我阅读了firefox文档,但它对我不起作用。这是关于脚本之间通信的官方文档 这是我的main.js代码 var tabs = require("sdk/tabs"); var data = require("sdk/self").data; var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "http://mydomain/x.html", content

我想从内容脚本中运行插件函数[main.js]。我阅读了firefox文档,但它对我不起作用。这是关于脚本之间通信的官方文档

这是我的main.js代码

var tabs = require("sdk/tabs");
var data = require("sdk/self").data;

var pageMod = require("sdk/page-mod");
pageMod.PageMod({
  include: "http://mydomain/x.html",
  contentScriptFile: data.url("listen.js")
});

self.port.on("myAddonMessage", function(myAddonMessagePayload) {
  console.log("working");
});
这是我的listen.js内容脚本

var myContentScriptMessagePayload="hi"; 
self.port.emit("myContentScriptMessage", myContentScriptMessagePayload);

实际上,我期望console.log(“工作”);这个输出。但它不起作用。有人能帮我一下吗?我真的很困惑。我实际上想从listen.js调用main.js函数。

main.js
没有
self.port
,内容脚本有。在
main.js
中,您需要将端口与启动内容脚本的内容一起使用。这家公司有更多的产品

var data = require("sdk/self").data;

var pageMod = require("sdk/page-mod");
pageMod.PageMod({
  include: "http://mydomain/x.html",
  contentScriptFile: data.url("listen.js"),
  onAttach: function(worker) {
    worker.port.on("myAddonMessage", function(myAddonMessagePayload) {
      console.log("working");
    });
  }
});