簡體   English   中英

Firefox附加SDK:在側邊欄和主腳本之間通信對象

[英]Firefox Add-on SDK: communicating objects between a sidebar and the main script

我是第一個插件,所以遇到的問題可能有一個明顯的解決方案,或者我的一般方法有缺陷。

我正在使用附加SDK 我的lib/main.js包含一個對象foo data目錄包含文件sidebar.htmlsidebar.js 我想將foo傳遞到側邊欄腳本,然后根據foo的狀態更改側邊欄。 在最小的示例中,我將嘗試顯示對象。

最小示例:

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">
            <!-- to be modified by 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 get foo from main.js here
for (o in foo) {
    if (foo.hasOwnProperty(o)) {
        str += "[" + o + " is " + foo[o] + "]";
    }
}
foodiv.innerHTML = str;

邊欄文檔解釋了如何偵聽來自主腳本的信號並在收到信號后調用函數,但是我不知道如何傳遞對象本身。

您鏈接的側邊欄文檔中提到的port.emit() API也需要第二個參數來傳遞對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM