javascript - Firefox Add-on SDK: communicating objects between a sidebar and the main script -
i hacking away @ first addon, problem running has either obvious solution or general approach flawed.
i using add-on sdk. lib/main.js
contains object foo
. data
directory has files sidebar.html
, sidebar.js
. want pass foo
sidebar-script , change sidebar depending on state of foo
. in minmal example try display object.
minimal example:
main.js
:
var foo = {"a": "b", "c": "d"}; var bar = require("sdk/ui/sidebar").sidebar({ id: "sb", title: "foobar", url: "./sidebar.html" }); bar.show();
sidebar.html
:
<!doctype html> <html> <body> <div id="foo-here"> <!-- modified sidebar.js --> </div> </body> <script type="text/javascript" src="sidebar.js"></script> </html>
sidebar.js
:
var foodiv = document.getelementbyid("foo-here"); var str = "", o; // magically foo main.js here (o in foo) { if (foo.hasownproperty(o)) { str += "[" + o + " " + foo[o] + "]"; } } foodiv.innerhtml = str;
the sidebar docs explain how listen signals main script , call function upon receiving signal, can't figure out how pass object itself.
the port.emit()
api mentioned in sidebar docs have linked takes second argument pass in objects.
Comments
Post a Comment