2011-01-10 26 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); 

EDIT#1:詳細。

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

長が例外をスローする「[例外... "コンポーネントが利用できない" nsresult: "されて、私はFirefoxで、標準のWebページ上でそれを持っているとき0x80040111(NS_ERROR_NOT_AVAILABLE)"

localStorage.length作品しかし、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

関連する問題