歌剧扩展脚本和它们之间的通信

opera extension scripts and communication between them

本文关键字:之间 通信 扩展 脚本      更新时间:2023-09-26

我使用附加组件生成器工具对Firefox进行了扩展。 扩展结构是这样的,

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

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

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

  5. 内容脚本将添加这两个结果,并在用户单击小部件时显示

例:

主.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();
  }
});

组合.js代码:

self.port.on("add-para", function(msgfromscript1,msgfromscript2) {
  var result=msgfromscript1+msgfromscript2;
  document.body.innerHTML = result;
});

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

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

opera extensions documentation: http://dev.opera.com/addons/extensions/以下是GitHub上的两个扩展:https://github.com/truthee/opera 和 https://github.com/mywot/opera 希望它有所帮助。