我需要删除所有我的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?
PD:我想删除而不知道IndexedDB的名称,我需要从代码中删除(Javascript)
获取名称qazxsw poi的函数调用已弃用。请参阅以下参考:
indexedDB.webkitGetDatabaseNames
也意图弃用:IDBFactory webkitGetDatabaseNames
https://github.com/dfahlander/Dexie.js/issues/532
您可以使用以下技术删除数据库:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/2fUr-3wFPKI/discussion
据我所知,人们应该使用Technique 1:
:
indexedDB.deleteDatabase
我可以确认它适用于PhantomJS 1.9.0和Chrome 26.0.1410.43。
var req = indexedDB.deleteDatabase(databaseName);
req.onsuccess = function () {
console.log("Deleted database successfully");
};
req.onerror = function () {
console.log("Couldn't delete database");
};
req.onblocked = function () {
console.log("Couldn't delete database due to the operation being blocked");
};
理论上,在Chrome中删除IndexedDB所需要做的就是:
在Windows中,该文件位于:
Technique 2
在Mac上,执行以下操作:
在Mac上,该文件夹位于:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB
在Linux上,该文件夹位于:
/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/
用于铬
/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/