【问题标题】:firefox extension call to addon function from content script从内容脚本到插件功能的 Firefox 扩展调用
【发布时间】:2014-07-05 10:24:47
【问题描述】:

我想从内容脚本运行插件函数[main.js]。我阅读了 firefox 文档,但它对我不起作用。这是关于脚本之间通信的官方文档https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port

这是我的 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("working");这个输出。但它不起作用。有人能帮我吗?我真的很困惑。我真的想从listen.js调用main.js函数。

【问题讨论】:

    标签: javascript firefox firefox-addon firefox-addon-sdk


    【解决方案1】:

    main.js 没有self.port,内容脚本有。在main.js 中,您需要将端口与启动内容脚本的任何内容一起使用。例如。 PageMod documentation 有更多。

    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");
        });
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2017-11-02
      相关资源
      最近更新 更多