我正在使用为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 Db和InvalidStateError while opening IndexedDB in Firefox,但这两个问题/答案都无法帮我解决问题。
答案 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前缀枚举值,其他版本使用字符串。哎呀。