2012-01-28 85 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