2014-01-31 50 views
0

使用localStorage,我嘗試存儲用戶配置,它運作良好。如何從Chrome擴展的content_scripts中讀取選項頁中設置的配置?

// in options_page 
localStorage.setItem('myKey',someVal); 

但它很難通過runtime.sendMessage

從content_scripts閱讀本CONFIGS('·ω·`)

localStorage.getItem('myKey'); 
// because different 'window' scope 

我做它

// in content_scripts 
chrome.runtime.sendMessage(null, {purpose:'getConfig',configKey:'myKey'}, 
    function(confHere){ 
     // some action 
    } 
); 

我認爲這是複雜!! (並使用'chrome.storage'需要許可,醜陋) 有什麼方法可以從Chrome擴展的content_scripts中讀取配置嗎?

回答

0

內容腳本在它們共享DOM的頁面的上下文中運行,而不是擴展名。因此,試圖從localStorage讀取的內容腳本將從頁面的localStorage中讀取,而不是擴展名。

您提出的方式是正確的,據我所知,訪問您的內容腳本中設置信息的最佳方式。因此,創建內容腳本時,向後臺發送消息以獲取設置(如您所做的那樣),然後在後臺添加一個將返回這些設置的偵聽器。它不是超級乾淨的......但是當你想到腳本應該是(而不是)的內容時,它很直觀。

Here是一個SO回答,它概括了你需要的東西(雖然從它的聲音你已經知道必須做什麼:))另外,如果你有興趣content script page of the extension docs有一些好的(和短的)底部,這有助於我理解內容腳本應該能夠做什麼的想法。

相關問題