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(...)'或嘗試其他調試方法來理解爲什麼代碼沒有達到你期望的水平。 –