javascript - localStorage 未按预期工作。页面重定向时不保存
问题描述
加载新页面时,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。
解决方案
每当您的页面刷新时,不仅变量会“重置”,实际上您在该页面上的整个 JS 脚本集都会重新运行。在您的情况下,这将包括在 localStorage中设置isMale
的部分。false
推荐阅读
- json - 如何从 aws ec2 describe-instances 获取公共 dns 名称
- javascript - 用于匹配经纬度对列表的正则表达式
- javascript - Express.js 的路径 url 有问题,包括“?”
- python - 在没有在系统中安装 python 的情况下在 IDE 中运行 Python 代码
- javascript - 类型错误:尝试 .filter() 时“无法读取未定义的属性 'toLowerCase'”
- javascript - 使用轮子事件循环遍历数组
- java - 如何仅使用一行扫描仪输入将 int 数组中的所有元素求和
- jq - jq-solaris 二进制响应错误
- javascript - 将填充表单字段的pdf转换为图像
- javascript - 在更新 SharePoint 列表之前验证字段值是否正确