Javascript Firefox附加SDK:在侧边栏和主脚本之间通信对象

Javascript Firefox附加SDK:在侧边栏和主脚本之间通信对象,javascript,firefox,firefox-addon,firefox-sidebar,Javascript,Firefox,Firefox Addon,Firefox Sidebar,我正在破解我的第一个插件,所以我遇到的问题可能有一个明显的解决方案,或者我的一般方法有缺陷 我在用电脑。我的lib/main.js包含一个对象foo。data目录包含文件sidebar.html和sidebar.js。我想将foo传递到侧栏脚本,然后根据foo的状态更改侧栏。在minmal示例中,我将尝试显示对象 最简单的例子: main.js: var foo = {"a": "b", "c": "d"}; var bar = require("sdk/ui/sidebar").Sidebar

我正在破解我的第一个插件,所以我遇到的问题可能有一个明显的解决方案,或者我的一般方法有缺陷

我在用电脑。我的
lib/main.js
包含一个对象
foo
data
目录包含文件
sidebar.html
sidebar.js
。我想将
foo
传递到侧栏脚本,然后根据
foo
的状态更改侧栏。在minmal示例中,我将尝试显示对象

最简单的例子:

main.js

var foo = {"a": "b", "c": "d"};
var bar = require("sdk/ui/sidebar").Sidebar({
    id: "sb",
    title: "foobar",
    url: "./sidebar.html"
});
bar.show();
var foodiv = document.getElementById("foo-here");
var str = "", o;
// magically get foo from main.js here
for (o in foo) {
    if (foo.hasOwnProperty(o)) {
        str += "[" + o + " is " + foo[o] + "]";
    }
}
foodiv.innerHTML = str;
sidebar.html

<!DOCTYPE html>
<html>
    <body>        
        <div id="foo-here">
            <!-- to be modified by sidebar.js -->
        </div>
    </body>
    <script type="text/javascript" src="sidebar.js"></script>
</html>
解释如何监听来自主脚本的信号并在收到信号时调用函数,但我不知道如何传递对象本身。

您链接的侧边栏文档中提到的API也使用第二个参数传递对象