我有一个数组作为我的键盘使用indexedDB,它运行良好的Chrome和火狐,但当我试图添加/放置使用IE,它给我一个DataError。
var request = window.indexedDB.open("MyTestDatabase");
request.onsuccess = function(event) {
var database = event.target.result;
var transaction = database.transaction(["document"], "readwrite");
var objectStore = transaction.objectStore("document");
var request = objectStore.put({title: 'MyDoc', version: 0});
request.onsuccess = function() {
console.log('document added');
};
request.error = function(error) {
console.log(JSON.stringify(error));
};
transaction.oncomplete = function() {
console.log('transaction complete');
};
transaction.onerror = function(error) {
console.log(JSON.stringify(error));
};
};
request.onupgradeneeded = function(event) {
event.target.result.createObjectStore("document", {keyPath: ['title', 'version']});
};错误截图:

如何保留我的双keyPath并使它与IE一起工作?
发布于 2014-01-16 17:31:25
目前解决这个问题的唯一方法是从数组中创建一个字符串,并在Kyaw提到的键处使用它。
request.onupgradeneeded = function(event) {
event.target.result.createObjectStore("document", {keyPath: ['id']});
};示例中的id现在必须是包含标题和版本的串联字符串。有些像:MyDoc_0。但是,您仍然可以存储标题和版本字段,这样就可以轻松地访问它们,而不必拆分id字符串。
https://stackoverflow.com/questions/20710884
复制相似问题