google chrome extension - क्रोम एक्सटेंशन: सामग्री स्क्रिप्ट में स्थानीय स्टोरेज तक पहुंच




google-chrome-extension local-storage (2)

इसलिए, मेरे पास एक विकल्प पृष्ठ है जहां उपयोगकर्ता कुछ विकल्पों को परिभाषित कर सकता है और यह इसे स्थानीय स्टोरेज में सहेजता है: options.html

अब, मेरे पास एक सामग्री स्क्रिप्ट भी है जिसे विकल्प. options.html पृष्ठ में परिभाषित विकल्पों को प्राप्त करने की आवश्यकता है, लेकिन जब मैं सामग्री स्क्रिप्ट से स्थानीय स्टोरेज तक पहुंचने का प्रयास करता हूं, तो यह विकल्प पृष्ठ से मान वापस नहीं करता है।

मैं अपनी सामग्री स्क्रिप्ट को स्थानीय स्तर से, विकल्प पृष्ठ या यहां तक ​​कि पृष्ठभूमि पृष्ठ से मूल्य कैसे प्राप्त करूं?


2016 अपडेट करें:

Google क्रोम ने स्टोरेज एपीआई जारी किया: http://developer.chrome.com/extensions/storage.html

अन्य क्रोम एपीआई की तरह उपयोग करना बहुत आसान है और आप क्रोम के किसी भी पेज संदर्भ से इसका उपयोग कर सकते हैं।

    // Save it using the Chrome extension storage API.
    chrome.storage.sync.set({'foo': 'hello', 'bar': 'hi'}, function() {
      console.log('Settings saved');
    });

    // Read it using the storage API
    chrome.storage.sync.get(['foo', 'bar'], function(items) {
      message('Settings retrieved', items);
    });

इसका उपयोग करने के लिए, सुनिश्चित करें कि आप इसे मैनिफेस्ट में परिभाषित करें:

    "permissions": [
      "storage"
    ],

"निकालें", "साफ़ करें", "getBytesInUse" और बदले गए स्टोरेज को सुनने के लिए एक ईवेंट श्रोता "ऑन चेंज" के तरीके हैं

देशी स्थानीय स्टोरेज का उपयोग ( 2011 से पुराना जवाब )

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

अब, अपनी सामग्री स्क्रिप्ट को अपने एक्सटेंशन संग्रहण को पढ़ने के लिए (जहां आप उन्हें अपने विकल्प पृष्ठ से सेट करते हैं), आपको एक्सटेंशन संदेश पास करने का उपयोग करना होगा।

पहली चीज जो आप करते हैं वह कुछ सामग्री लाने के लिए आपके एक्सटेंशन को एक अनुरोध भेजने के लिए आपकी सामग्री स्क्रिप्ट बताती है, और वह डेटा आपका एक्सटेंशन स्थानीय हो सकता है स्टोरेज:

contentscript.js

chrome.runtime.sendMessage({method: "getStatus"}, function(response) {
  console.log(response.status);
});

background.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.method == "getStatus")
      sendResponse({status: localStorage['status']});
    else
      sendResponse({}); // snub them.
});

आप अपनी सामग्री स्क्रिप्ट में सामान्य स्थानीय स्टोरेज डेटा प्राप्त करने के लिए इसके आसपास एक एपीआई कर सकते हैं, या शायद, संपूर्ण स्थानीय स्टोरेज सरणी प्राप्त करें।

मुझे आशा है कि आपकी समस्या का समाधान करने में मदद मिलेगी।

फैंसी और जेनेरिक होने के लिए ...

contentscript.js

chrome.runtime.sendMessage({method: "getLocalStorage", key: "status"}, function(response) {
  console.log(response.data);
});

background.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.method == "getLocalStorage")
      sendResponse({data: localStorage[request.key]});
    else
      sendResponse({}); // snub them.
});

एक और विकल्प क्रोमेस्टोरेज एपीआई का उपयोग करना होगा। यह सत्रों में वैकल्पिक समन्वयन के साथ उपयोगकर्ता डेटा के भंडारण की अनुमति देता है।

एक नकारात्मक बात यह है कि यह असीमित है।

https://developer.chrome.com/extensions/storage.html





content-script