我使用 Add-on Builder 工具对 firefox 进行了扩展。扩展结构就像,
主插件代码将运行 2 个内容脚本(1 个处于运行状态,1 个处于文档就绪状态)
内容脚本的结果被发送到主插件代码(使用“内容脚本和插件代码之间的通信”)
主插件代码将此信息发送到另外 1 个内容脚本。
内容脚本将添加结果并在用户单击小部件时显示
例子:
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 扩展可以帮助我?