3 Stimmen

Die Verwendung von indexedDB in einer Firefox-Erweiterung

Ich kann es nicht schaffen, Daten mit indexedDB in einer Firefox-Erweiterung zu speichern. Ich kann auch keine Informationen über indexedDB und Firefox-Erweiterungen finden.

Hat jemand damit schon einmal zu tun gehabt?

3voto

Wladimir Palant Punkte 55387

Das einzige Problem ist, dass für indexedDB Sie ein Fenster benötigen, abgesehen davon gibt es nicht viel Besonderes beim Verwenden davon aus einem Add-on heraus. Klassische Add-ons haben normalerweise ein Fenster, das sie verwenden können. Add-ons, die mit dem Add-on SDK erstellt wurden, werden jedoch in einem fensterlosen Kontext ausgeführt. Wenn Sie also das SDK verwenden, verwenden Sie das interne window-utils Paket:

var window = require("window-utils").activeWindow;
var indexedDB = (window.indexedDB || window.mozIndexedDB);
var request = indexedDB.open("MyExtensionDB");

Beachten Sie, dass alle Erweiterungen denselben Namensraum (chrome://) bezüglich IndexedDB verwenden. Daher sollten Sie den Datenbanknamen so wählen, dass er nicht mit den Namen kollidiert, die andere Erweiterungen möglicherweise wählen.

Ab Firefox 12 entfällt die Anforderung, ein Fenster zu haben. nsIIndexedDatabaseManager.initWindowless() kann verwendet werden, um die Eigenschaft mozIndexedDB in jedes Objekt einzufügen. Relevanter Fehler: Fehler 587797.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X