Использование indexedDB в расширении Firefox - PullRequest
2 голосов
/ 28 января 2012

Мне не удается сохранить данные с использованием indexedDB в расширении Firefox.Я также не могу найти информацию о расширениях indexedDB и Firefox.

Кто-нибудь когда-нибудь имел дело с этим?

1 Ответ

2 голосов
/ 30 января 2012

Единственная проблема в том, что для indexedDB вам нужно окно, кроме того, что оно не так уж и особенное при использовании его из надстройки.Классические надстройки обычно имеют окно, которое они могут использовать, однако надстройки, созданные с помощью SDK надстройки, выполняются в контексте без окон.Поэтому, если вы используете SDK, вы используете внутренний пакет window-utils:

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

Обратите внимание, что все расширения используют одно и то же пространство имен (chrome://), что и IndexedDB.Поэтому вы должны выбрать имя базы данных таким образом, чтобы оно не совпадало с именами, которые могут выбрать другие расширения.

Начиная с Firefox 12, требование иметь окно отменено.nsIIndexedDatabaseManager.initWindowless() может использоваться для ввода свойства mozIndexedDB в любой объект.Соответствующая ошибка: ошибка 587797 .

...