gpt4 book ai didi

javascript - 无法在 IE10 中创建 IndexedDB 数据库

转载 作者:行者123 更新时间:2023-11-28 01:20:47 25 4
gpt4 key购买 nike

我编写代码来创建数据库:

var db;
var request = indexedDB.open("TestDatabase");
request.onerror = function(evt) {
console.log("Database error code: " + evt.target.errorCode);
};
request.onsuccess = function(evt) {
db = request.result;
console.log(JSON.stringify(db));
};

在FF/Chrome中运行良好,代码:JSON.stringify(db)返回json对象。但是,它在 IE10 中不起作用。代码:JSON.stringify(db) 返回一个空对象。

大家有同样的问题吗?您能花点时间帮我吗?谢谢。

更新:我还检查了 IE10 支持的 IndexedDB,喜欢它:

var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;

返回true!我不知道 JSON.stringify(db) 总是返回一个空对象。 :(

最佳答案

嗯,您的索引数据库是实际定义的,这也是您得到 true 的原因

var indexedDB = window.indexedDB

该问题是由 JSON.stringify() 引起的,它会在要求序列化的任何对象上查找 toJSON() 方法。变量 db 没有它,因此调用 db.toString()。

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var db;
var request = window.indexedDB.open("TestDatabase",1);
request.onerror = function(evt) {
console.log("Database error code: " + evt.target.errorCode);
};
request.onsuccess = function(evt) {
db = request.result;
// extend the toJSON property for your indexeddb object
db.toJSON = function() {
return JSON.stringify({name : db.name});
};
//output: [object IDBDatabase]{constructor: IDBDatabase {...}, name: "TestDatabase", objectStoreNames: DOMStringList {...}, onabort: null, onerror: null, version: 1}
console.log(db);
// name is a inherit property
console.log(db.hasOwnProperty(name));
// name is not a numerable property
console.log(db.propertyIsEnumerable(name));
// toString returns a native object, not a JSON String, thats why you have {} with JSON.stringify(db)
console.log(db.toString);
// JSON.stringify call the db.toJSON(), and get the "{\"name\":\"TestDatabase\"}"
console.log(JSON.stringify(db));
};

关于javascript - 无法在 IE10 中创建 IndexedDB 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23287253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com