1
我试图在IndexDB中打开两个对象并从输入值获取数据时遇到上述情况。请问任何人都可以告诉我错在哪里,这里是代码Uncaught TypeError:无法读取nullopenRequest.onupgradeneeded的属性'值'Indexeddb
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
var tab1Create = thisDB.createObjectStore("users", {keyPath: "phone"});
var tab2Create = thisDB.createObjectStore("Friends", {keyPath: "frdphone"});
db = e.target.result;
var transaction = e.target.transaction;
var phone = document.querySelector("#phone").value;
var email = document.querySelector("#email").value;
var frdphone = document.querySelector("#frdphone").value;
var frdname = document.querySelector('#frdname').value;
var friend = transaction.objectStore('Friends');
friend.add({
frdname:frdname,
frdphone:frdphone
});
var user = transaction.objectStore('users');
//Perform the add
user.add({
phone :phone,
email :email
});
谢谢Joshua,修复空值我得到的错误“未捕获的DataCloneError:无法执行'IDBObjectStore'添加':一个对象无法克隆。”请问可能是什么问题? –
没有更多的上下文很难说。这表明(如其所述)传递给'.add()'的对象无法被克隆。在给出的代码示例中,它看起来像传递包含字符串的对象,这应该很好。 –
猜测:你是否改变了'var phone = document.querySelector(“#phone”)。value; 'var phone = document.querySelector(“#phone”);'?这意味着'电话'正在引用一个元素,并且元素不能被克隆。我建议你尝试'console.log(...)'或尝试其他调试方法来理解为什么代码没有达到你期望的水平。 –