addData()没有成功
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>IndexedDB</title>
</head>
<body>
<script>
var dbName="testDB",
version=3,
storeName='os1';
function openDB(name){
version=version||1;
var request=window.indexedDB.open(name,version);
request.onerror=function(e){
console.log(e.currentTarget.error.message);
}
request.onsuccess=function(e){
var db=request.result;//这里才是indexDB对象
console.log('open success');
}
request.onupgradeneeded=function(e){
var db=request.result;
if(!db.ObjectStoreName.contains('os1')){
db.createObjectStore('os1',{keyPath:"id"})
}
console.log('DB version changed to'+version);
}
}
openDB(dbName,version);
var data=[{
name:'史莱姆',
id:'001',
hp:3,
category:['怪物','容易逃跑']
},{
name:'小蝙蝠',
id:'002',
hp:5,
category:['怪物','飞行']
},{
name:'小恶魔',
id:'003',
hp:9,
category:['怪物','恶魔']
}]
function addData(db,storeName){
var transaction=db.transaction(storeName,'readwrite');
var store=transaction.ObjectStore(storeName);
for(var i=0;i<data.length;i++){
store.add(data[i]);
}
}
</script>
</body>
</html>30
收起
正在回答
2回答
1. 因为db使用的不是全局作用域,所在addData()时,db 没有引用到创建好的数据库。

修改建议:

2. 代码中有两处拼写错误,应该如下:


3. 在浏览器中,运行该代码后,然后在执行 addData(db,storeName);
注意浏览器有缓存,关闭后,在重新打开该文件。
动手实践,希望解决你的疑问,欢迎采纳,加油!
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星