我正在使用最新的 google chrome..我正在尝试实现 HTML5 indexedDB 示例。AIM 是在页面加载并在其中存储数据时创建数据库。如果有人有,请发布任何示例工作示例。我尝试了这段代码,但是Uncaught Error: InvalidStateError: DOM IDBDatabase Exception 11
当我尝试创建交易时却得到了。这是代码片段..
var idbRequest;
var idb;
$(document).ready(function(){
//ini----------------------
var peopleData = [
{ name: "John Dow", email: "john@company.com" },
{ name: "Don Dow", email: "don@company.com" }
];
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
//create database.............
if (window.indexedDB) {
idbRequest = window.indexedDB.open("StoreDB");
idbRequest.onsuccess = function(e) {
idb = idbRequest.result || e.result; // FF4 requires e.result. IDBRequest.request isn't set :(
/*idbRequest.onerror = function (evt) {
console.log("IndexedDB error: " + evt.target.errorCode);
};*/
var v = '2.0';
var setVrequest = idb.setVersion(v);
setVrequest.onsuccess = function(e) {
if(idb.objectStoreNames.contains("Stores")) {
alert("ObjectStore is already created.");
return false;
}
var objectstore = idb.createObjectStore("Stores");
alert("Object store Created.");
if (!idb.objectStoreNames.contains('Stores')) {
alert("Object store doesn't exist.");
return;
}else{
alert("Object store contain 'store'");
}
// Create a transaction that locks the world.
var trans = idb.transaction(["Stores"],"readwrite");//getting exception on this line..
trans.oncomplete = function(){
console.log("Success transaction");
};
var objectStore = trans.objectStore("Stores");
var request = objectStore.put(
1,
"wsdsdsd");
alert("data added");
};
};
}
});