localStorage无法正常工作。页面重定向后未保存

时间:2019-01-08 23:59:40

标签: javascript

在加载新页面时,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。

1 个答案:

答案 0 :(得分:1)

每当页面刷新时,不仅会“重置”变量,实际上该页面上的整个JS脚本集都会重新运行。对于您而言,这将包括将localStorage中的isMale设置为false的部分。