MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Using IndexedDB in chrome

indexedDB API 通常被用来在用户的浏览器端存储来自JavaScript的数据。(点击 Using IndexedDB 复习)。然而,使用system-privileged JavaScript的 Components.utils.importGlobalProperties() 函数也能获取这些API:

Components.utils.importGlobalProperties(["indexedDB"]);

// From here on, it's like using IndexedDB from content
var req = indexedDB.open("my-database");
// ...

如果你要创建一个 sandbox ,并且打算在sandbox中使用indexedDB,那么在 Sandbox 的构造函数中使用 wantGlobalProperties配置项:

var options = {
  "wantGlobalProperties": ["indexedDB"]           
}
var principal = Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal);
var sandbox = Components.utils.Sandbox(principal, options);

// The sandbox will have access to indexedDB
var sandboxScript = 'var req = indexedDB.open("my-database");';
Components.utils.evalInSandbox(sandboxScript, sandbox);

在Firefox 33之前,你可能要使用nsIIndexedDatabaseManager的initWindowless方法,从chrome的代码中方法获取indexedDB。这种方法在Firefox 33时,已经被移除。

文档标签和贡献者

 此页面的贡献者: hechengxixi
 最后编辑者: hechengxixi,