在Firefox中打开IndexedDB时出现InvalidStateError

Vác*_*ych 8 javascript firefox indexeddb

在Firefox 17.0.1中,当我尝试打开IndexedDB数据库时,Firebug控制台向我显示InvalidStateError异常.此外request.onerror事件引发,但event.target.errorCode不确定的.

if (window.indexedDB) {
    var request = window.indexedDB.open('demo', 1);
    request.onsuccess = function(event) {
        // not raised
    };
    request.onupgradeneeded = function(event) {
        // not raised
    };
    request.onerror = function(event) {
        // raised with InvalidStateError
    };
}
Run Code Online (Sandbox Code Playgroud)

有没有人在Fi​​refox中有过IndexedDB的经验?

更新

Firefox 18.0.1具有相同的行为.Comlete来源.

RiZ*_*KiT 5

我回答是因为问题仍然存在(在 Firefox 54 中)。如果您出现以下情况,就会发生这种情况:

为了防止InvalidStateError, try catch不起作用(但对于其他错误有用,例如禁用 cookie),而是需要event.preventDefault()。是的,我知道,这太容易让人难以置信了。:)

if (window.indexedDB) {
    var request = window.indexedDB.open('demo', 1);
    request.onsuccess = function(event) {
        // not raised
    };
    request.onupgradeneeded = function(event) {
        // not raised
    };
    request.onerror = function(event) {
        // raised with no InvalidStateError
        if (request.error && request.error.name === 'InvalidStateError') {
            event.preventDefault();
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

感谢访问https://bugzilla.mozilla.org/show_bug.cgi?id=1331103#c3