Javascript Firefox扩展中的localStorage
我正在尝试从Firefox扩展访问页面的本地存储。我的理解是,Javascript Firefox扩展中的localStorage,javascript,html,firefox-addon,local-storage,Javascript,Html,Firefox Addon,Local Storage,我正在尝试从Firefox扩展访问页面的本地存储。我的理解是,content引用了当前页面的窗口。当我尝试使用content.localStorage访问页面的localStorage时,我想我得到了对它的引用。然而,当我尝试content.localStorage.length时,我什么也得不到 附件是相关代码 var myExtension = { init: function() { var appcontent = document.getElementById(
content
引用了当前页面的窗口。当我尝试使用content.localStorage
访问页面的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\u错误\u不可用)
localStorage.length
在Firefox的标准网页上运行,但是content.localStorage.length
在Firefox扩展中不起作用。现在我很困惑…使用content.localStorage.wrappedJSObject.myVariable从Firefox扩展中,您可以通过窗口访问localStorage对象。content.localStorage,例如:
var ls = window.content.localStorage;
ls.setItem("myvariable", "myvalue");
var item = ls.getItem("myvariable");
其他任何操作都会导致“组件不可用”错误
另一方面,globalStorage不是这样工作的。您根本无法将其与扩展一起使用,因为该对象只有在从服务器运行时才可用。使用NsIDOMStorageManager xpcom界面,您可以获取本地存储信息
try{
alert(content.localStorage.getItem('todoData'))
alert(content.localStorage.length)
} catch (e){
alert(e)
}
window.content未定义!