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

时间:2012-08-08 06:39:00

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

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

  1. 主要插件代码将运行2个内容脚本(1个在运行,1个在文档的准备状态)

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

  3. 主要的插件代码会将此信息发送给另外一个内容脚本。

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

  5. 示例:

    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扩展可能对我有帮助?

1 个答案:

答案 0 :(得分:0)

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