我有一个带有 indexedDB 函数的 JS 文件,如下所示:
// Get all object stores from IndexedDB
mydb.indexedDB.getObjStores = function() {
var db = mydb.indexedDB.db;
return db.objectStoreNames;
};
我从另一个 JS 文件中调用这个函数,我需要对象存储的名称来对它们做一些事情,比如填充一个组合:
function doSomething(){
var arr = mydb.indexedDB.getObjStores();
for (var i=0; i<arr.length;i++) {
document.getElementById('mycombo').options[i] = new Option (arr[i], i);
}
}
根据浏览器的不同,组合是空的,尽管我可以获得数组的长度(奇怪)。我认为问题在于异步的事情正在杀死我......我认为使用 addEventListener 之类的东西是个好主意(我什么时候可以告诉我已经在 indexedDB 中打开了一个连接?),但是这个 indexedDB 调用没有 onsuccess 事件. 它适用于 Chrome 和 Firefox,但不适用于 PDA 浏览器,例如,我该如何等待?那是问题吗?
谢谢!