indexedDB兼容ff和chrome实例

[url]http://snaketoome.blog.163.com/blog/static/169773401201242121716882[/url]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>IndexedDB</title>
</head>
<body >
<div id="container">
<label for="txtName">
Name:
</label>
<input type="text" id="txtName" name="txtName" />
<br />
<label for="txtEmail">
Email:
</label>
<input type="email" id="txtEmail" name="txtEmail" />
<br />
<input type="button" id="btnAdd" value="Add Record" />
<br />
<label for="txtID">
name:
</label>
<input type="text" id="txtID" name="txtID" />
<br />
<input type="button" id="btnDelete" value="Delete Record" />
<input type="button" id="btnGet" value="Get Record" />
<br />
<input type="button" id="btnPrint" value="Print objectStore" />
<br />
<output id="printOutput">
</output>
</div>
</body>
<script type="text/javascript">
function kk(){
window.db='';
window.storeName='aaa';
window.dbVersion = '1.0';
window.dbName='intent_DB';
initDb();
contentLoaded();
}

function initDb() {


if ('webkitIndexedDB' in window) {
window.indexedDB = webkitIndexedDB;
window.IDBKeyRange = webkitIDBKeyRange;
window.IDBTransaction = window.webkitIDBTransaction;
}
else if ('mozIndexedDB' in window) {
window.indexedDB = mozIndexedDB;
}
else if ('msIndexedDB' in window) {
window.indexedDB = msIndexedDB;
}

var request = indexedDB.open(dbName);

request.onsuccess = function (evt) {
db = this.result;
console.debug(window.db);
if(db.version!=dbVersion){
var dbReq = db.setVersion(dbVersion);
dbReq.onsuccess = function (e) {
var that = {result: this.source};
onUpg.call(that, e);//把改变版本后的source传递到onUpg
};
}
};
request.onerror = function (evt) {
console.log("IndexedDB error: " + evt.target.errorCode);
};

request.onupgradeneeded = onUpg
}
function contentLoaded() {
var btnAdd = document.getElementById("btnAdd");
var btnDelete = document.getElementById("btnDelete");
var btnPrint = document.getElementById("btnPrint");
var btnGet=document.getElementById('btnGet');

btnAdd.onclick=function () {
var name = document.getElementById("txtName").value;
var sort = document.getElementById("txtEmail").value;

var transaction = db.transaction(storeName,IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore(storeName);
var request = objectStore.add({name: name,sort:sort});
request.onsuccess = function (evt) {
alert('添加成功');
};
};

btnDelete.onclick=function () {
var id = document.getElementById("txtID").value;
var transaction = db.transaction(storeName, IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore(storeName);
var request = objectStore.delete(id);
request.onsuccess = function(evt) {
alert('删除成功');
};
request.onerror = function(evt) {
alert('删除失败');
};
};

btnPrint.onclick=function () {
var output = document.getElementById("printOutput");
output.textContent = "";
console.debug(window.db);
var transaction = db.transaction(storeName, IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore(storeName);
var request = objectStore.openCursor();
request.onsuccess = function(evt) {
var cursor = evt.target.result;
if (cursor) {
output.textContent += " name: " + cursor.value.name + " email:"+cursor.value.sort;
cursor.continue();
}
else {
console.log("No more entries!");
}
};
};
btnGet.onclick=function(){
var output = document.getElementById("printOutput");
output.textContent = "";

var id = document.getElementById("txtID").value;
var transaction = db.transaction(storeName, IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore(storeName);
var request = objectStore.get(id);
request.onsuccess = function(evt) {
var cursor = this.result;
if (cursor) {
output.textContent += " name: " + cursor.name + " email:"+cursor.sort;
}
};
request.onerror = function(evt) {
alert('删除失败');
};
}
}
function onUpg(e){
var db = this.result;
var objectStore=db.createObjectStore(storeName, {keyPath: 'name'});
objectStore.createIndex("sort", "sort", {unique: false });
}
kk();
</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值