首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >移植到火狐的Chrome扩展不工作(indexedDB错误)

移植到火狐的Chrome扩展不工作(indexedDB错误)
EN

Stack Overflow用户
提问于 2012-06-03 02:45:39
回答 1查看 458关注 0票数 0

我正在尝试将Twitter Notifier扩展移植到FF。

我对JavaScript不是很熟悉,所以我只是用extension factory把它转换成FF。

不幸的是,它不工作;我没有收到任何HTML5桌面通知。

我看了一下代码,我认为问题出在twitter.js,它应该在路径'resources\extension-data\js‘中找到。

http://pastebin.com/C0NqU4Ur

首先,我改变了

代码语言:javascript
运行
复制
twitter.messagesDB = window.webkitIndexedDB.open("messagesDB");

代码语言:javascript
运行
复制
twitter.messagesDB = window.mozIndexedDB.open("messagesDB");

但它仍然不起作用。error console也不显示任何错误。

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

因此,我尝试将twitter.messagesDB = twitter.messagesDB.result;放在函数之外,在错误控制台中显示以下错误:

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-03 08:05:12

这是由于IndexedDB的火狐实现和Chrome实现之间不兼容,前者支持2011年12月发布的最新IndedexDB协议,后者支持之前的版本。

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

要查看此更改,please star this issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10864973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档