在Firefox 21中打开IndexedDB时出现InvalidStateError

时间:2013-05-31 08:29:19

标签: javascript firefox indexeddb

我正在使用为Linux Mint构建的Firefox 21。当尝试从脚本标记内打开IndexedDB数据库时,我得到一个InvalidStateError。但是,尝试从JavaScript控制台打开数据库时,我没有收到错误。

以下代码给出错误

<html>
    <body>
        <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                indexedDB.open("MyNewDatabase");
            });
         </script>
    </body>
</html>
在控制台中输入indexedDB.open("MyNewDatabase");时,

会正确返回IDBOpenDBRequest个对象。什么可能导致这种奇怪行为的想法?

我知道Invalid state Error in Firefox for Indexed DbInvalidStateError while opening IndexedDB in Firefox,但这两个问题/答案都无法帮我解决问题。

3 个答案:

答案 0 :(得分:2)

这个回复可能为时已晚,无法使用,但你检查了dom.indexedDB.enabled pref在about:config中是否为真?

我最后阅读了Gecko indexedDB源代码,发现由于原因未知,我在过去将该pref翻转为false!

答案 1 :(得分:0)

您是否已将版本传递为indexedDB.open的第二个参数?我记得我在网上发现的一些随机对话,其中有一个决定是让它不是可选的等等。我相信规范说如果没有提供它默认为1,但你可能想要至少看看会发生什么。

答案 2 :(得分:0)

在Chrome和Firefox中......您必须包含版本号。在IE10中......你绝对不能。 IE10进一步使用前缀'msIndexedDB',并且使用事务枚举同样与Microsoft不一致。某些版本的IE使用MS前缀枚举值,其他版本使用字符串。哎呀。