在Firefox扩展中使用indexedDB

时间:2012-01-28 02:13:37

标签: javascript html5 firefox firefox-addon indexeddb

我无法在Firefox扩展程序中使用indexedDB保存数据。我也找不到有关indexedDB和Firefox扩展的任何信息。

有没有人处理过这个问题?

1 个答案:

答案 0 :(得分:2)

唯一的问题是,对于indexedDB你需要一个窗口,除了那个从附加组件使用它时没有太多特别之处。经典附加组件通常有一个可以使用的窗口,但是在无窗口的上下文中使用附加SDK创建的附加组件。因此,如果您使用的是SDK,则使用内部window-utils包:

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

请注意,就IndexedDB而言,所有扩展都使用相同的命名空间(chrome://)。因此,您应该选择数据库名称,使其不会与其他扩展名可能选择的名称冲突。

从Firefox 12开始,删除了一个窗口的要求。 nsIIndexedDatabaseManager.initWindowless()可用于将mozIndexedDB属性注入任何对象。相关错误:bug 587797