2011-01-10 17 views
9

मैं फ़ायरफ़ॉक्स एक्सटेंशन से किसी पृष्ठ के स्थानीय स्टोरेज तक पहुंचने का प्रयास कर रहा हूं। मेरी समझ यह है कि content वर्तमान पृष्ठ के window का संदर्भ देता है। जब मैं content.localStorage के साथ पृष्ठ के लिए स्थानीय स्टोरेज को आजमाकर एक्सेस करता हूं, तो मुझे लगता है कि मुझे इसका संदर्भ मिल रहा है। हालांकि, जब मैं content.localStorage.length आज़माता हूं, तो मुझे कुछ भी नहीं मिलता है।फ़ायरफ़ॉक्स एक्सटेंशन में स्थानीय स्टोरेज

संलग्न कोड में कोड संलग्न है।

var myExtension = { 
    init: function() { 
     var appcontent = document.getElementById("appcontent"); // browser 
     if(appcontent) 
      appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true); 
    }, 

    onPageLoad: function(aEvent) { 
     var doc = aEvent.originalTarget; 
     alert(content.localStorage) // alerts "[object XPCNativeWrapper [object Storage]]" 
     alert(content.localStorage.length) // alerts nothing 
    } 
window.addEventListener("load", function() { myExtension.init(); }, false); 

संपादित करें # 1: अधिक जानकारी।

try{ 
    alert(content.localStorage.getItem('todoData')) 
    alert(content.localStorage.length) 
} catch (e){ 
    alert(e) 
} 

लंबाई अपवाद फेंक दिया जाता है "[अपवाद ..." घटक उपलब्ध "nsresult:" नहीं है 0x80040111 (NS_ERROR_NOT_AVAILABLE) "

localStorage.length काम करता है जब मैं Firefox में एक मानक वेब पृष्ठ पर यह है , लेकिन content.localStorage.length खुराक Firefox विस्तार से काम नहीं। अब मैं उलझन में हूँ ...

उत्तर

7

एक Firefox विस्तार से, आप के साथ localStorage वस्तु का उपयोग कर सकते window.content.localStorage, उदाहरण के लिए:

var ls = window.content.localStorage; 
ls.setItem("myvariable", "myvalue"); 
var item = ls.getItem("myvariable"); 

और कुछ तो आपको एक "घटक उपलब्ध नहीं" त्रुटि दे देंगे।

एक अलग रूप में के रूप में, globalStorage इस तरह से काम नहीं करता। आप इसका विस्तार किसी एक्सटेंशन के साथ नहीं कर सकते क्योंकि ऑब्जेक्ट केवल तभी उपलब्ध होता है जब यह सर्वर से चलाया जाता है।

+0

window.content अपरिभाषित है! – Praveen

0

उपयोग content.localStorage.wrappedJSObject.myVariable