我正在尝试从 Firefox 扩展访问页面的 localStorage。我的理解是content
给出了参考window
当前页面的。当我尝试访问页面的 localStorage 时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)
}
长度抛出异常“[Exception...“组件不可用”nsresult:“0x80040111(NS_ERROR_NOT_AVAILABLE)”
localStorage.length
当我将它放在 Firefox 的标准网页上时可以工作,但是content.localStorage.length
不适用于 Firefox 扩展。现在我很困惑...
从 Firefox 扩展中,您可以使用以下命令访问 localStorage 对象window.content.localStorage, 例如:
var ls = window.content.localStorage;
ls.setItem("myvariable", "myvalue");
var item = ls.getItem("myvariable");
其他任何情况都会给您一个“组件不可用”错误。
顺便说一句,globalStorage 并不是这样工作的。您根本无法将其与扩展一起使用,因为该对象仅在从服务器运行时才可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)