有人能解释一下在火狐扩展中使用port.on和port.emit的上下文吗?
在正式文件中,我认为这应该是可行的:
//main.js
var someData = "Message received";
self.port.emit("myMessage", someData);
self.port.on("myMessage", alert(someData));但我得到
错误:未定义自我。
将其附加到如下所定义的对象之后:
var self = require("sdk/self");
self.port.emit("myMessage", someData);我得到了
错误:未定义端口。
发布于 2014-01-04 00:41:58
如果使用page-mod模块将内容脚本注入到网页中,则可以在内容脚本中使用self.port与main.js通信。例如:
main.js:
var data = require('sdk/self').data;
require('sdk/page-mod').PageMod({
include: ["*"],
contentScriptFile: [data.url('cs.js')],
attachTo: ["existing", "top"],
onAttach: function(worker) {
worker.port.emit('attached', true);
}
});cs.js:
self.port.on('attached', function() {
console.log('attached...');
});关于相关的文档,请从这里开始:
https://stackoverflow.com/questions/20914358
复制相似问题