在加载新页面时,localStorage不保存变量。
我尝试使用变量,对象和现在的localStorage将数据从一个.js文件保存到另一个。在javascript中,我使用windows.location更改页面,所有变量数据均被重置。所有变量的作用域是全局的。
//在单独的.JS文件中
var beganStory = false;
localStorage.setItem("beganStory", beganStory);
var isMale = false;
localStorage.setItem("isMale", isMale);
//在另一个.JS文件中
document.querySelector("#boy").addEventListener("click", ChangeToMale);
document.querySelector("#boy").addEventListener("click", Redirect);
document.querySelector("#girl").addEventListener("click", Redirect);
function Redirect()
{
window.location = "StatsPicker.html";
}
function ChangeToMale()
{
console.log("Changed To Male!");
alert(localStorage.getItem("isMale"));
localStorage.setItem("isMale", true);
alert(localStorage.getItem("isMale"));
}
我希望当用户单击ID为boy的元素时保存该变量。实际结果是页面重定向后,并且我使用localStorage.getItem(“ isMale”)时返回false。
答案 0 :(得分:1)
每当页面刷新时,不仅会“重置”变量,实际上该页面上的整个JS脚本集都会重新运行。对于您而言,这将包括将localStorage中的isMale
设置为false
的部分。