要解决本地存储返回 true 但在重新加载页面后仍然重置的问题,可以使用以下方法:
// 存储数据
sessionStorage.setItem('key', 'value');
// 获取数据
const data = sessionStorage.getItem('key');
sessionStorage 是会话级别的存储,当会话结束(关闭浏览器标签页或浏览器)时,存储的数据会被清除,因此在重新加载页面后不会重置。
// 页面加载时检查本地存储
window.onload = function() {
const data = localStorage.getItem('key');
if (data) {
// 将存储的数据应用到页面上
// 例如,将存储的文本数据显示在一个 div 元素中
document.getElementById('divId').textContent = data;
}
};
// 存储数据
localStorage.setItem('key', 'value');
这种方法可以在页面加载时从本地存储中获取数据,并将其应用到页面上,以实现重新加载页面后仍然保留数据的效果。
请注意,无论使用 sessionStorage 还是 localStorage,存储的数据都是以字符串形式存储的,如果需要存储对象或数组等非字符串类型的数据,需要使用 JSON.stringify() 将其转换为字符串,使用 JSON.parse() 将其转换回原始类型。例如:
// 存储对象数据
const obj = { key: 'value' };
localStorage.setItem('key', JSON.stringify(obj));
// 获取对象数据
const data = JSON.parse(localStorage.getItem('key'));