Javascript 在Firefox扩展中使用indexedDB

Javascript 在Firefox扩展中使用indexedDB,javascript,html,firefox,firefox-addon,indexeddb,Javascript,Html,Firefox,Firefox Addon,Indexeddb,我无法在Firefox扩展中使用indexedDB保存数据。我也找不到关于indexedDB和Firefox扩展的任何信息 有人处理过这个问题吗?唯一的问题是,对于indexedDB您需要一个窗口,而不是从附加组件使用它时没有什么特别之处。经典加载项通常有一个可以使用的窗口,但使用加载项SDK创建的加载项在无窗口上下文中执行。因此,如果您使用的是SDK,则使用内部窗口utils包: var window = require("window-utils").activeWindow; var in

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


有人处理过这个问题吗?

唯一的问题是,对于
indexedDB
您需要一个窗口,而不是从附加组件使用它时没有什么特别之处。经典加载项通常有一个可以使用的窗口,但使用加载项SDK创建的加载项在无窗口上下文中执行。因此,如果您使用的是SDK,则使用内部
窗口utils
包:

var window = require("window-utils").activeWindow;
var indexedDB = (window.indexedDB || window.mozIndexedDB);
var request = indexedDB.open("MyExtensionDB");
请注意,所有扩展都使用相同的名称空间(
chrome://
),只要IndexedDB。因此,您应该选择数据库名称,使其不会与其他扩展可能选择的名称冲突

从Firefox 12开始,不再需要窗口
nsindexedatabasemanager.initWindowless()
可用于将
mozIndexedDB
属性注入任何对象。相关错误: