2012-03-23 12 views
5

से नए मान नहीं लेता है, जब मैं अपने विकल्प पृष्ठ के साथ अपना स्थानीय स्टोरेज अपडेट करता हूं तो यह ठीक है, नए मान संग्रहीत किए जाते हैं लेकिन मेरी background.js पहले के मान रखती है लोड भले ही मैं कुछ ऐसा कर दिया: जब मैं विस्तार यह ठीक है लेकिन बहुत कष्टप्रद है ...क्रोम एक्सटेंशन: background.js स्थानीय स्टोरेज

उस के बारे में कोई ठीक है ताज़ा

var value = localStorage['item']; 

?

सम्मान

उत्तर

6

क्या आप निश्चित हैं? क्या आप ध्यान में रखते हैं कि पृष्ठभूमि पृष्ठ पर स्क्रिप्ट केवल एक बार निष्पादित हो जाती है, जब एक्सटेंशन पहले लोड होता है। इसलिए आपको पृष्ठभूमि पृष्ठ को बताने की आवश्यकता है कि स्थानीय स्टोरेज आइटम अपडेट हो गया है और आपके चर को अपडेट किया गया है। या आपकी पृष्ठभूमि कोड हमेशा एक चर का उपयोग करने के बजाय स्थानीय स्टोरेज तक पहुंच सकता है।
उदाहरण के लिए, इस कोड को पृष्ठभूमि पृष्ठ कि चर मूल्य अपडेट करेगा में एक समारोह निष्पादित करेंगे ....
पृष्ठभूमि

// the following line will only be executed when the extension first loads 
var value = localStorage['setting']; 

function updateSetting() { 
    value = localStorage['setting']; 
} 

विकल्पों

localStorage['setting']=Math.random(); 
chrome.extension.getBackgroundPage().updateSetting(); 
+1

आप ओह बस अपने दिमाग को अपनी पहली वाक्य के साथ चालू करें। मैं भूल गया कि बैकग्राउंड पेज केवल मेरे सेट इंटरवल() फ़ंक्शन के कारण निष्पादित हो जाता है ... फिर स्क्रिप्ट के शीर्ष पर मेरे स्थानीय स्टोरेज मान प्राप्त करने के बजाय, मैंने इसे फ़ंक्शन चुड़ैल में स्थानांतरित कर दिया है, स्थानीय स्तर पर मूल्यों को कुछ बार पुनर्प्राप्त करें। – Syl