SDK チュートリアル Web サイトの次のコードを使用しています。
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 つのイベント) 経由でしか送信できないことです。私が必要としているのは、このサイドバーの範囲外で emit 関数を使用することです。たとえば、同じ 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 内にタブ リスナーを配置しようとしましたが (つまり、リスナー内のリスナー)、それも機能しません。
誰かがそれについて考えを持っていますか? ありがとう。