You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Internet Explorer 11中成功连接IndexedDB?

在IE11中正确使用IndexedDB的解决方案

针对你在IE11中使用IndexedDB遇到的问题,需要修改以下几个关键地方:

  • 补充IE专属的IndexedDB前缀:IE11的IndexedDB实现使用msIndexedDB前缀,你的代码中缺少这个判断,导致无法正确获取到IndexedDB对象。
  • 替换箭头函数:IE11不支持ES6箭头语法,onerror回调里的箭头函数会引发语法错误,需要改为普通函数。
  • 完善onupgradeneeded逻辑:IE11要求在数据库版本升级时必须创建至少一个对象仓库(Object Store),否则可能触发异常。
  • 替换ES6变量声明:IE11对let/const的支持不完善,需统一改用var声明变量。

修正后的完整代码如下:

var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
if(indexedDB) {
  var request = indexedDB.open("library", 1);
  var db;

  request.onupgradeneeded = function(event) {
    console.log("Upgrade");
    // 必须创建至少一个对象仓库,否则IE11会报错
    db = event.target.result;
    if (!db.objectStoreNames.contains('books')) {
      db.createObjectStore('books', { keyPath: 'id' });
    }
  };

  request.onsuccess = function() {
    db = request.result;
    console.log(db);
  };
  
  request.onerror = function(event) {
    console.log('error: ', event);
  };
}

额外注意:IE11的IndexedDB功能有限,不支持部分现代IndexedDB特性(如索引的多键路径、批量操作的某些用法),如果涉及复杂操作需要额外做兼容性处理。

内容的提问来源于stack exchange,提问作者Kirill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:45:12