2013-08-21 68 views
0

我正在開發Firefox擴展。 問題是,當我打開第二個窗口(Ctrl + N),我的擴展爲新打開的窗口有新的狀態。 如果我在第二個窗口上作出反應或更改,它不會影響第一個窗口,反之亦然。Firefox擴展 - 在兩個或多個窗口之間共享公共狀態

Ex 在Firefox上安裝了擴展模塊 已打開第一個窗口。我的擴展正常運作,改變狀態,登錄,查看數據等 然後打開第二。我的擴展是新的狀態,我不能獲得以前的狀態(第一個窗口狀態)。

如何保持第一和第二或其他Firefox打開的窗口之間的相同狀態。

回答

0

我正確地假設你正在開發一個XUL overlay插件,而不是一個SDK插件?

在窗口之間共享狀態的一種方法是使用Javascript code modules。一個代碼模塊只會被加載一次(除非明確地被卸載),因此會將相同的數據暴露給多個窗口。請務必閱讀"Sharing objects using code modules"。但是,請注意,因此在關閉窗口時,必須清除與代碼模塊相關並存儲在代碼模塊中的任何狀態,否則將發生泄漏。

如果您使用的是SDK,您的main.js模塊已經與代碼模塊等效。內容腳本可能使用消息傳遞來存儲和檢索模塊中的狀態。