Firefox Addon SDK中的page-mod和上下文菜单之间的通信

时间:2012-10-31 19:54:11

标签: firefox contextmenu firefox-addon-sdk add-on postmessage

通过context-menu模块,我检测用户点击了哪个DOM元素我的自定义上下文菜单项"标记":

var menu = require("context-menu").Item({
  label: "Mark",
  contentScriptFile: data.url("context.js"),
  onMessage: function (node) {
    //Send the node to page-mod
  }
});

context.js

self.on("click", function (node, data) {
    self.postMessage(node);
});

现在我想将此节点引用发送到page-mod模块,其中每个注入了pagemod的contentScript的页面都知道我点击的节点(并在其中标记带有红色边框的HTML元素)每个标签)。

我知道通过postMessage()将消息发送到pagemod是不可能的,那么如何让这些模块进行通信?是否有优雅的worker解决方案?

1 个答案:

答案 0 :(得分:2)

这是不可能的,postMessage部分是JSONifying您的消息,因此消息中的节点被忽略。您可以通过将有关节点的数据发送到插件上下文(使用postMessage)来实现目标。