window.onbeforeunload
должно иметь значение типа function
, но в вашем коде это undefined
.Следовательно, вы должны изменить это на следующее:
window.onbeforeunload = function storeData (){
var timerJson = JSON.stringify(timeData)
localStorage.setItem("timeData", timerJson);
}
Я также удалил параметр из функции, сделав его закрытием.
UPD.Как отметил Джонас Уилмс, вы должны выполнить то же самое с onload
событием и start
функцией.
ТАКЖЕ.Чтобы всегда иметь актуальное (новое) значение timeSpent, вы должны сделать следующее:
const state = {timeSpent: -1}
И везде заменить timeSpent
на state.timeSpent
.
Таким образом, закрытия будутиметь ссылку на state
объект, вместо того, чтобы просто брать начальное значение примитива timeSpent
.