我正在使用 SDK 教程网站上的这段代码:
var sidebar = require("sdk/ui/sidebar").Sidebar({
id: 'my-sidebar',
title: 'My Sidebar',
url: require("sdk/self").data.url("sidebar.html"),
onAttach: function (worker) {
// listen for a "ready" message from the script
worker.port.on("ready", function() {
// send an "init" message to the script
worker.port.emit("init", "message from main.js");
});
}
});
这很好用。现在的问题是,这只允许我通过 worker.port onAttach 发送一些东西(以及侧边栏的其他 3 个事件)。我需要的是在此侧边栏范围之外使用发出功能。例如,如果我在同一个 main.js 中使用一个像这样的选项卡的侦听器
tabs.on('ready', function(tab) {
sidebar.worker.port.emit("init", "message from main.js");
}
这是行不通的。我也试过
sidebar.port.emit("init", "message from main.js");
或者
worker.port.emit("init", "message from main.js");
没有成功。
我还尝试将选项卡侦听器放在侧边栏的 onAttach 中(因此侦听器内部的侦听器),但这也不起作用。
有人对此有想法吗?谢谢。