javascript - 尝试将数据存储在点击器网站中
问题描述
我正在尝试存储一个变量score
,无论您何时刷新,您都会一次又一次地使用该变量。我无法弄清楚的是代码是什么。我尝试了一些方法,但它们似乎都不起作用。
这是我的点击器网站。但是当我尝试使用 JavaScript 来存储它时,它不适用于window.onload
和onload=
. 另外我的负载可能是正确的,因为我有score = data
一个document.getElementById('points').innerHTML = score;
.
我的代码如下所示:
var score = 0;
setInterval(SaveData, 10);
setInterval(Click, 1000); // Every full second allow clicking ONE point.
function Click() {
score++;
document.getElementById('btn').onclick = function() {
document.getElementById('demo').innerHTML = score;
clearInterval(Click);
}
}
function SaveData() {
// What saves the variable score
localStorage['save'] = btoa(JSON.stringify(score));
}
function LoadData() {
score = JSON.parse(atob(localStorage['save']))
document.getElementById('demo').innerHTML = score;
}
window.onload = function() {
// When the window loads do this
LoadData();
};
解决方案
更改此行SaveData()
:
localStorage['save'] = btoa(JSON.stringify(score));
对此:
localStorage.setItem('save', btoa(JSON.stringify(score)));
这行在LoadData()
:
score = JSON.parse(atob(localStorage['save']))
对此:
score = JSON.parse(atob(localStorage.getItem('save')));
此外,无需每次点击都更新事件。您可以将该代码移出Click()
函数:
document.getElementById('btn').onclick = function() {
document.getElementById('demo').innerHTML = score;
clearInterval(Click);
}
function Click() {
score++;
}
并且您传递给clearInterval()
从 中返回的 ID 值setInterval()
,而不是函数引用。就像是:
var timer = setInterval(Click, 1000);
clearInterval(timer);
推荐阅读
- sql - 其他字段上的窗口功能平局断路器以获取最新记录
- r - 零膨胀模型 R 二进制部分的响应曲线
- python - 如何在 15 天范围内的网站上使用 selenium 遍历日期范围?
- python - 如何在 Python 中创建可以使用 PIP 安装的 CLI?
- events - 将事件对象从触发函数传递到另一个函数
- python - 美术馆安装Python脚本间歇性锁定,移除热像仪传感器读取功能似乎有效?
- sqlite - sqlite3.OperationalError:靠近“[Total Babies]”:语法错误
- javascript - Angular 的 FormArray 什么时候是传统数组,什么时候是 FormArray 对象?
- c - 我想在 notepad++ 中编译 c 代码,但我无法设置 nppexec
- c# - 基于需要添加到列表的 POCO 添加到现有模型