javascript - 当我使用 location.href 时,我可以避免 html 重置我的 javascript 变量吗?

标签 javascript html var

<分区>

我的新项目是一个小型“拼图”游戏,您可以进入一个房间并解决里面的谜题,然后当您返回关卡选择部分时,它会打开下一个关卡。

到目前为止,我一直在使用单个变量“lock”来计算每次你通过一个级别时的计数,如果“lock”的值与它允许你通过的级别编号相对应。

问题是,当我使用 location.href 时,它似乎重置了“锁定”变量。

层级选择的HTML:

//html, link to js and some text
<h1>
<img src="assets/Nextbutton1.png" onclick="t1()" width="100" //1st level button
height="100"> <br>
<img src="assets/Nextbutton2.png" onclick="t2()" width="100" //2nd level button
height="100">

Win 屏幕 html

<body>
<h1 align="center"> Congratulations</h1>
<button align="center" onclick="joo()">Back to level select</button> 

Javascript 几乎适用于一切

var lock;
var taso2;  // future stuff
var taso3 = 2; //future stuff

function joo(){

location.href='index.html'
if (lock == 0) // if statement so you dont progress by playing 1st level over and over
{
lock += 1;}
}

function t2() {
if (lock > 0) {
location.href='Taso2.html';
}
else { alert("You have to beat the previous levels first") }
}

function t1() {
location.href='Taso1.html';
}

最佳答案

HTML 本质上是“无内存”的。这意味着默认情况下它会在每次页面刷新时重置其变量。但是,有一些方法可以保留您的变量。来自 w3schools ,实现这一点的方法是使用

  • window.localStorage - 存储没有过期日期的数据
  • window.sessionStorage - 存储一个 session 的数据(当浏览器选项卡关闭时数据丢失)

同样来自同一个网站:

// Store
localStorage.setItem("lastname", "Smith");

// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");

请注意,这都是使用 Vanilla JavaScript,因为您没有在问题中指明任何框架。

关于javascript - 当我使用 location.href 时,我可以避免 html 重置我的 javascript 变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57598345/

相关文章:

jquery - 选择器 css3 :checked not working in IE8 (using ie7. js)

javascript - 全局变量返回为未定义

javascript - 我可以同步运行 Sails.js 服务吗?

css - 第三列 div 定位不正确

c# - 有没有正确的方法来创建 html src 路径?

javascript - JavaScript中变量的范围是什么?

javascript - 根据单击的元素更改变量

javascript - 如何格式化浮点型,最多 "n"位小数且无尾随零

php - 我如何让 emacs 区分我在编写 PHP、HTML 和 JavaScript 时的区别?

javascript - 为什么 eq 在使用 after 时不能在 jquery 中工作?