-1

我使用 Add-on Builder 工具对 firefox 进行了扩展。扩展结构就像,

  1. 主插件代码将运行 2 个内容脚本(1 个处于运行状态,1 个处于文档就绪状态)

  2. 内容脚本的结果被发送到主插件代码(使用“内容脚本和插件代码之间的通信”)

  3. 主插件代码将此信息发送到另外 1 个内容脚本。

  4. 内容脚本将添加结果并在用户单击小部件时显示

例子:

main.js(插件代码):

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

var paraPanel = require("panel").Panel({

  contentScriptFile: data.url("combine.js")

});

require("page-mod").PageMod({

  contentScriptWhen: 'start',

  contentScriptFile: data.url("content-script1.js"),

  onAttach: function (worker) {

      worker.port.on("para1", function(message) {

      msgfromscript1 = message;

    });

  }

})

require("page-mod").PageMod({

  contentScriptWhen: 'ready',

  contentScriptFile: data.url("content-script2.js"),

  onAttach: function (worker) {

      worker.port.on("para2", function(message) {

     msgfromscript2 = message;

    });

  }

})



require("widget").Widget({

  contentURL: data.url("crack_attack.png"),

  onClick: function() {

    paraPanel.port.emit("add-para", msgfromscript1,msgfromscript2); 

    paraPanel.show();

  }

});

combine.js 代码:

self.port.on("add-para", function(msgfromscript1,msgfromscript2) {

  var result=msgfromscript1+msgfromscript2;

  document.body.innerHTML = result;

});

我想实现与 Opera 扩展相同的功能。如何基于 Opera 浏览器中的单击功能进行这种通信和显示?

是否有任何文档或示例 Opera 扩展可以帮助我?

4

1 回答 1

0

Opera 扩展文档:http ://dev.opera.com/addons/extensions/ 这里有两个 github 上的扩展:https ://github.com/truthee/opera和https://github.com/mywot/opera 希望它有帮助。

于 2012-08-08T06:54:34.223 回答