0

我正在尝试将Twitter 通知程序扩展移植到 FF。
我对 JavaScript 不太熟悉,所以我只是使用扩展工厂将其转换为 FF。

不幸的是,它不起作用;我没有收到任何 HTML5 桌面通知。
我看了一点代码,我认为问题出在 twitter.js 上,它应该在路径“resources\extension-data\js”中找到。

http://pastebin.com/C0NqU4Ur

首先我变了

twitter.messagesDB = window.webkitIndexedDB.open("messagesDB");

twitter.messagesDB = window.mozIndexedDB.open("messagesDB");

但它仍然无法正常工作。错误控制台也没有显示任何错误。

当我将 console.log 命令放入 twitter.messagesDB.onsuccess 函数时,没有任何内容输出到错误控制台。当我创建一个 onerror 函数时也没有输出。所以我想用 try 和 catch 子句包围函数,但没有抛出错误。

所以我试着把 twitter.messagesDB = twitter.messagesDB.result; 退出函数,错误控制台中显示以下错误:

Error: uncaught exception: [Exception... "A mutation operation was attempted on a database that did not allow mutations."  code: "6" nsresult: "0x80660006 (NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR)"  location: "chrome-extension://gjlehiopfilnaggndcmbhphaglkbkekf/js/twitter.js Line: 28"]

这意味着什么?我怎样才能让它在 Firefox 中工作?

提前致谢!

编辑:我在 Windows 上使用 Firefox 12

4

1 回答 1

1

这是由于支持 2011 年 12 月发布的最新 IndedexDB 协议的 IndexedDB 的 Firefox 实现与支持之前版本的 Chrome 实现之间不兼容。

重大变化是如何创建数据库,旧版 (Chrome) 实现使用setVersion事务,而新版 (FF) 使用onupgradeneeded事件和回调。

要查看此更改,请在此问题上加注星标

于 2012-06-03T00:05:12.387 回答