2011-03-29 77 views
15

我使用了Chrome擴展,它具有所謂的後臺頁面 - 每個瀏覽器窗口在後臺加載的HTML頁面。您可以在那裏存儲一些JavaScript變量,可以訪問擴展自己的本地存儲,可以與內容腳本(腳本注入頁面)進行反饋和強制。firefox插件有沒有類似於「背景頁面」概念的東西?

在Firefox中是否有類似的東西,以及如何將它用於上面列出的任務?

回答

0

從傳統Firefox擴展的角度來看,瀏覽器本身就是另一個包含文檔的窗口,儘管這是一個XUL文檔,而不是HTML文檔。所以你可以存儲每個窗口的變量,儘管你必須小心不要覆蓋其他擴展變量,這通常意味着聲明一個頂級對象並將所有變量作爲該對象的屬性添加。

在窗口之間共享變量曾經有點困難,但幸運的是JavaScript模塊在簡單情況下(原始類型)解決了這個問題。

擴展可以與內容腳本進行通信,儘管有一些包裝可以防止您意外地做一些愚蠢的事情。

12

如果您使用的是相對較新的附加SDK,那麼駐留在lib目錄中的主javascript文件相當於Chrome擴展的後臺頁面 - 一個在後臺運行並生成/創建/插入面板,小部件和內容腳本。

關於你提到的具體要求:

1的localStorage:附加組件在Firefox不能直接訪問的localStorage。但是,您可以使用simple-storage來存儲類似於localStorage的數據。

2.內容腳本通訊:附加組件可以使用port的postMessage內容的腳本進行通信。

相關問題