2011-01-10 152 views
9

我試圖從Firefox擴展中訪問頁面的localStorage。我的理解是,content給出了當前頁面的window的引用。當我嘗試訪問content.localStorage頁面的localStorage時,我想我正在獲取它的參考。但是,當我嘗試content.localStorage.length時,我什麼也沒得到。Firefox擴展中的localStorage

附加是有問題的代碼。

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 is undefined! – Praveen 2016-05-27 12:38:25

0

使用content.localStorage.wrappedJSObject.myVariable