5

モジュールを介してcontext-menu、ユーザーがカスタム コンテキスト メニュー項目「Mark」をクリックした 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 要素に赤い境界線を付けます)。

経由で pagemod にメッセージを送信postMessage()できないことはわかっていますが、これらのモジュールを通信させるにはどうすればよいですか? エレガントなworkerソリューションはありますか?

4

1 に答える 1

2

これは不可能です。postMessage 部分はメッセージを JSON 化するため、メッセージ内のノードは無視されます。代わりに、ノードに関するデータを (postMessage を使用して) アドオン コンテキストに送信することで、目的を達成することができます。

于 2013-12-17T02:03:30.577 に答える