我试图在本地存储中设置一堆变量,但该函数无法运行,我尝试获取该值但没有成功,如何在本地存储中保存字段?
function setPerson(){
var person = { 'name': getElementById('name'), 'photo': getElementById('photo')};
// Put the object into the storage
alert(person);
localStorage.setItem('person', JSON.stringify(person));
};
HTML在 HTML 中,我从字段中将值放入标签中并填充它们,但是当我尝试获取它们并保存它们时,什么也没有发生......
您可以像这样使用 localStorage:
// Retrieve your data from locaStorage
var saveData = JSON.parse(localStorage.saveData || null) || {};
// Store your data.
function saveStuff(obj) {
saveData.obj = obj;
// saveData.foo = foo;
saveData.time = new Date().getTime();
localStorage.saveData = JSON.stringify(saveData);
}
// Do something with your data.
function loadStuff() {
return saveData.obj || "default";
}
2022 年更新:
由于人们仍然认为这是一个更现代的版本。我喜欢将这样的东西包装在一个服务中,这样可以为您提供更多的控制和类型安全。您可以轻松添加验证和错误处理等内容。
class LocalStorageService {
#keys = {
persons: 'persons',
};
constructor() {
this.storage = window.localStorage;
}
addPerson(person) {
const persons = this.getPersons();
persons.push(person);
this.setPersons(persons);
}
getPersons() {
return JSON.parse(this.storage.getItem(this.#keys.persons)) || [];
}
getPerson(id) {
const persons = this.getPersons();
return persons.find((person) => person.id === id);
}
setPersons(persons) {
this.storage.setItem(this.#keys.persons, JSON.stringify(persons));
}
removePerson(person) {
const persons = this.getPersons();
const index = persons.indexOf(person);
persons.splice(index, 1);
this.setPersons(persons);
}
clear() {
this.storage.clear();
}
}
const storageService = new LocalStorageService();
const person = {
id: '1',
name: 'John',
age: '20',
};
storageService.addPerson(person);
const persons = storageService.getPersons();
console.log(persons);
Web 存储 API - MDN https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)