Ich bin neu in der Entwicklung von Erweiterungen. Momentan teste ich eine Firefox Erweiterung, die mit dem Add-on SDK entwickelt wurde. Ich möchte HTM5 Localstorage verwenden, um etwas aus einem der Hintergrundskripts in meiner Erweiterung zu speichern, die von einem anderen Hintergrundskript der gleichen Erweiterung abgerufen werden. Npm (Node Packet Manager) wurde verwendet, so das Problem ist, ich bin nicht in der Lage, Browser LocalStorage Objekt zu verwenden, ReferenceError: localStorage is not defined
ist, was ich bekomme.Wie node-localstorage von der Browsererweiterung zu verwenden ist, die npm verwendet
Durch das Surfen lernte ich über Knoten-Localstorage kennen. Ich befolge die Anweisungen von https://www.npmjs.com/package/node-localstorage. Aber, wenn ich meine Erweiterung mit dem angegebenen Code in dem obigen Link zu testen, bekomme ich einen Fehler:
Message: Module `localStorage.js` is not found at resource://gre/modules/commonjs/localStorage.js
Stack:
[email protected]://xxx-at-xyz-dot-com/scripts/Somescript.js:3:23
@resource://xxx-at-xyz-dot-com/index.js:6:11
[email protected]://gre/modules/commonjs/sdk/addon/runner.js:147:19
startup/</<@resource://gre/modules/commonjs/sdk/addon/runner.js:87:9
[email protected]://gre/modules/Promise-backend.js:933:23
[email protected]://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise-backend.j s:746:1 –
Hier ist eine Annäherung, wie ich versuche, localstorage zu verwenden:
//Somescript.js (background script)
module.exports = function() {
this.watchTab = function (tabId, port, url) {
//some code
localStorage.setItem("key","value");
// some code
}
}
Die Linie localStorage.setItem("key","value")
löst einen Fehler aus ReferenceError: localStorage is not defined.
Dies ist der Grund, warum ich localStorage nicht verwenden kann.
Eine erste Frage wäre, warum verwenden Sie node-localStorage statt HTML5 localStorage? Könnten Sie mehr Details über den Fehler geben? –
Ich versuchte HTML5 localstorage verwenden, aber das Problem, das ich ist RefernceError bin immer: Fenster nicht definiert ist, wenn ich Funktion storageAvailable (Typ) verwenden { \t try { \t \t var storage = Fenster [Typ], \t \t \t x = ' __storage_test__ '; \t \t storage.setItem (x, x); \t \t storage.removeItem (x); \t \t Rückkehr wahr; \t} \t catch (e) { \t \t Rückgabe false; \t} } – wittyrandhir
Fensterobjekt ist in der Umgebung node.js nicht verfügbar.Ähnlich ist localStorage nicht verfügbar. – wittyrandhir