2012-01-28 55 views

回答

2

唯一的问题是,对于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属性注入到任何对象中。相关错误:bug 587797