2011-11-08 35 views

回答

7

一種方法是將所有共享數據保留在後臺頁面中,並通過getBackgroundPage進行訪問,該功能可在大多數情況下使用。如果不可用(例如在上下文腳本中),則可以使用message passing來獲取數據。

+0

所以你的建議是在背景頁面'window.PI = 3.14'中定義。然後在擴展視圖中使用'chrome.extension.getBackgroundPage()。PI'和內容腳本使用'chrome.extension.sendRequest('giveMePI',function(PI){/ *這裏我們有PI * /})'並再次在後臺頁面:'chrome.extension.onRequest.addListener(function(req,sender,sendResponse){if(req =='giveMePI'){sendResponse(window.PI);}});' 「PI」似乎太複雜了? – disfated

+4

對於那種東西,你可以創建一個constants.js文件,將其作爲內容腳本注入,並從後臺頁面包含。 –

+0

如果您添加此評論作爲單獨的答案,我會接受它。謝謝 – disfated

1

由於@BorisSmus mentioned,您可以創建一個單獨的constants.js文件,您可以在任何需要它的地方包含該文件。

例如,在你的manifest.json

"content_scripts": [ 
    { 
     "js": ["constants.js", /* ... your other content scripts ... */] 
    } 
], 

而且在<head>在您的彈出和背景頁面頂部的下列內容:

<script src="constants.js"></script> 

這也並沒有造成問題的好處如果其中一個constants.js的用戶意外修改了一個變量,因爲每個用戶都有自己的副本。

相關問題