【问题标题】:Using indexedDB in a Firefox extension在 Firefox 扩展中使用 indexedDB
【发布时间】:2012-01-30 15:58:53
【问题描述】:

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

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

【问题讨论】:

    标签: javascript html firefox firefox-addon indexeddb


    【解决方案1】:

    唯一的问题是,对于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:bug 587797.

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2011-03-10
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多