2013-03-26 81 views
0

可以爲面板腳本和頁腳本製作一個全局變量嗎?firefox插件中面板內容腳本和頁面內容腳本之間的全局變量

也許有些黑客喜歡使用指針或可能一些存儲位置,可以通過面板腳本和頁面腳本輕鬆訪問。我不想發送使用端口通信發佈消息的變量,因爲我將在定時器函數中使用此變量,這些定時器函數在以英里爲單位的時間間隔內刷新,如果Web瀏覽器將發佈如此多的帶有系統端口的消息,則Web瀏覽器將超載。我認爲如果我可以從一個位置讀取變量會更好,可以通過面板腳本和頁面腳本輕鬆訪問該變量。我是Firefox的附加組件生成器,我怎樣才能實現這個插件?

這裏我附上面板腳本,它會讀取頁面腳本保存的值。

var panel = require("panel").Panel({ 
      width: 100, 
      height: 100, 
      contentScriptFile: data.url("panel_script.js") 
    }); 

我在這裏附上網頁腳本這將節省從頁面內容和麪板腳本中的數值會讀它。

var pageMod = require("page-mod"); 
pageMod.PageMod({ 
    include: "*", 
    contentScriptFile: self.data.url("page_script.js"), 
    contentScriptWhen: 'ready' 
    }); 

UPDATE:

我想讀這是在網頁上播放的播放位置,我需要它作爲mileseconds非常準確,我想在我的插件面板使用計時器腳本獲取玩家位置值。如果我使用端口請求,那麼Web瀏覽器會被重載,因爲這麼多的請求會花費更多的資源,而不是隻能將值保存在可輕鬆從面板腳本中獲取的位置。

+0

你只想要顯示它的值嗎?否則,我只會在特定事件發生時獲得價值。 – canuckistani 2013-03-26 20:44:59

+0

@canuckistani我需要獲得價值並處理它。我可以檢測到玩家正在玩的事件,然後我想在一秒鐘的間隔內獲得玩家的位置,精度非常重要。 – Jigberto 2013-03-26 22:16:07

+0

我不知道該怎麼告訴你,這個系統並不是專爲高頻率的消息而設計的,也不是爲了讓你通過參考直接從網頁訪問對象或值來形成附加代碼,理由很充分。 – canuckistani 2013-03-26 22:19:25

回答

2

你不能這樣做,主要是出於安全和性能原因。內容腳本必須與main.js中的主要附加代碼分開,以防止web內容能夠在main.js中注入和運行代碼,並且有可能訪問Firefox的所有API,例如將文件寫入文件系統,偵聽TCP套接字和修改其他網頁。

如果您提供了有關附加功能的更多信息,人們可能會提出更好的解決方法。

+0

請檢查我的更新。謝謝 – Jigberto 2013-03-26 20:29:00

相關問題