如何检测是否启用了IndexedDB

Mar*_*arc 3 javascript browser-feature-detection

我想知道如何在JavaScript中检测IndexedDB是否可用并启用.

我正在按照这些方针进行测试:

if (window.indexedDB) {
    if ((using_chrome && browserVersion >= 24)
        || (usingFirefox && browserVersion >= 16)
        || (usingIe && browserVersion >= 10)
        || (usingEdge && browserVersion >= 12)
        || (usingSafari && browserVersion >= 9)) {
        accessible = true;
    } 
} 
Run Code Online (Sandbox Code Playgroud)

但我更倾向于使用特征检测而不是依赖于版本号.

假设用于测试IndexedDB的功能检测是有效的,有没有人知道在页面加载上测试这个的好方法?

Mic*_*ski 6

您可以使用Modernizr进行检查:

if (Modernizr.indexeddb) {
  console.log("IndexedDB is supported.");
} else {
  console.log("IndexedDB is not supprorted.");
}
Run Code Online (Sandbox Code Playgroud)

请注意,现在几乎所有现代浏览器都支持IndexedDB(请参阅caniuse.com).

  • 私有模式下的 Firefox 不支持 IndexedDB,但仍返回 window.indexedDB 的评估结果为 True 的内容。 (2认同)