Javascript 本地存储未按预期工作。页面重定向时不保存
localStorage在加载新页面时不保存变量 我尝试过使用变量、对象和localStorage将数据从一个.js文件保存到另一个。在javascript中,我使用windows.location更改页面,并重置所有变量数据。所有变量的作用域都是全局的 //在单独的.JS文件中Javascript 本地存储未按预期工作。页面重定向时不保存,javascript,Javascript,localStorage在加载新页面时不保存变量 我尝试过使用变量、对象和localStorage将数据从一个.js文件保存到另一个。在javascript中,我使用windows.location更改页面,并重置所有变量数据。所有变量的作用域都是全局的 //在单独的.JS文件中 var beganStory = false; localStorage.setItem("beganStory", beganStory); var isMale = false; localStorage.setI
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.getItemisMale返回false。每当页面刷新时,不仅变量“重置”,事实上该页面上的整个JS脚本集都会重新运行。在您的情况下,这将包括在localStorage中将isMale设置为false的部分。第一位代码何时运行?你确认它正在运行吗?而ChangeToMale并没有改变任何东西,它只是阅读。这是故意的吗?本地存储要求域100%相同,协议也相同。因此,如果您正在从服务器重定向浏览器,例如http://example.com/ 到https://example.com 您不再有本地存储。您不断覆盖这些值。加载页面时运行的代码需要首先尝试并读取值,并且只有在没有存储任何内容时才进行设置。