我需要删除所有的IndexedDB,目前我有:
const indexedDB = window.indexedDB || window.mozIndexedDB
|| window.webkitIndexedDB || window.msIndexedDB;
if (indexedDB.webkitGetDatabaseNames) {
const bases = indexedDB.webkitGetDatabaseNames();
bases.onsuccess = (event) => {
const data = event.target.result;
Object.values(data).forEach((db) => {
indexedDB.deleteDatabase(db);
});
resolve();
};
bases.onerror = reject;
}
但是webkitGetDatabaseNames()
函数未定义。是否可能在不使用此方法的情况下删除所有IndexedDB?
附注:我想在不知道IndexedDB的名称的情况下删除它们,并且我需要从代码(Javascript)中删除。
ServiceWorker
中使用indexedDB
时,全局作用域应该使用self
(而不是window
)。实际上,self
在ServiceWorker
之外也可以使用。如果你想要自动重新打开已删除的数据库,在最后的then
子句中添加self.indexedDB.open('your_db_name', 0);
即可。 - OXiGEN