addData()没有成功

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>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

1. 因为db使用的不是全局作用域,所在addData()时,db 没有引用到创建好的数据库。

http://img1.sycdn.imooc.com//climg/5a9769ea0001310a04530094.jpg

修改建议:

http://img1.sycdn.imooc.com//climg/5a976a2700013d7805050401.jpg

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

http://img1.sycdn.imooc.com//climg/5a9773880001b0ef04760177.jpg

http://img1.sycdn.imooc.com//climg/5a9772a100014d5405580111.jpg

3. 在浏览器中,运行该代码后,然后在执行 addData(db,storeName); 

注意浏览器有缓存,关闭后,在重新打开该文件。

动手实践,希望解决你的疑问,欢迎采纳,加油!

提问者 慕粉6557610 2018-02-28 21:37:11

错误提示

Uncaught TypeError: Cannot read property 'transaction' of undefined

    at addData (test.html:65)

    at <anonymous>:1:1


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师