老师报错了
<!DOCTYPE html>
<html manifest="" style="font-size: 16px">
<head>
<title>练习</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<style type="text/css"></style>
</head>
<body>
<!-- JS -->
<script type="text/javascript">
var DB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; //兼容性
var name = "数据练习", b = 9; //库名 版本号
var a = DB.open(name,b); //创建数据库 名为 数据练习
a.onsuccess = function(){
console.log("数据成功");
}
a.onerror = function() {
console.warn("数据失败")
}
a.onupgradeneeded = function() {
console.log("数据升级成功");
// 获取IDBDatabase 值
DB = a.result;
// 判断 是否有类似表
if(!DB.objectStoreNames.contains("数据表")) {
// 创建表
DB.createObjectStore("数据表", {autoIncrement: true})
}
}
var data = [
{
"id" : "001",
"账号" : "1234",
"密码" : "000",
"性别" : "男"
},
{
"id" : "001",
"账号" : "4321",
"密码" : "111",
"性别" : "女"
},
{
"id" : "001",
"账号" : "1243",
"密码" : "222",
"性别" : "未知"
}
];
function addData() {
var transaction = DB.transaction("数据表", "r"),
store = transaction.ovjectStore("数据表")
data.map(function(o){
store.add(o);
})
}
addData()
</script>
</body>
</html>0
收起
正在回答
2回答
1、单词错误:

应该是objectStore。
2、不应该在代码中调用addData()方法,因为onupgradeneeded和onsuccess方法是异步执行的,需要等待一定的事件,所以会先执行下面的代码,下面addData调用的时候,db数据库还没有成功,所以会报错。建议在控制台中调用:


自己可以动手测试下。
慕神6715844
2018-12-03 16:13:26
<!DOCTYPE html>
<html manifest="" style="font-size: 16px">
<head>
<title>练习</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<style type="text/css"></style>
</head>
<body>
<!-- JS -->
<script type="text/javascript">
var DB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; //兼容性
var name = "数据练习", b = 9; //库名 版本号
var a = DB.open(name,b); //创建数据库 名为 数据练习
a.onsuccess = function(){
console.log("数据成功");
}
a.onerror = function() {
console.warn("数据失败")
}
a.onupgradeneeded = function() {
console.log("数据升级成功");
// 获取IDBDatabase 值
DB = a.result;
// 判断 是否有类似表
if(!DB.objectStoreNames.contains("数据表")) {
// 创建表
DB.createObjectStore("数据表", {autoIncrement: true})
}
}
var data = [
{
"id" : "001",
"账号" : "1234",
"密码" : "000",
"性别" : "男"
},
{
"id" : "001",
"账号" : "4321",
"密码" : "111",
"性别" : "女"
},
{
"id" : "001",
"账号" : "1243",
"密码" : "222",
"性别" : "未知"
}
];
function addData() {
var transaction = DB.transaction("数据表", "readwrite"),
store = transaction.ovjectStore("数据表")
data.map(function(o){
store.add(o);
})
}
addData()
</script>
</body>
</html>
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星