SessionStorage似乎仍然是空的
SessionStorage seems to remain empty
本文关键字:仍然是 SessionStorage 更新时间:2023-09-26
我是HTML5/Javascript的新手,我认为我有一个概念问题。我使用Aptana作为我的环境,它使用FireFox作为浏览器进行调试。
下面是有问题的代码:
var req = new ContactRequest("Mister Peachy", "peach.png", "One Liner Message" );
sessionStorage.Requests = new Array();
sessionStorage.Requests[0] = req;
req = new ContactRequest("Anon Ymous", "person.png", "Another one line msg");
sessionStorage.Requests[1] = req;
问题似乎是sessionStorage。Requests总是等于"。我尝试使用。setitem,但也没有工作。
您需要做的是将数据字符串化以存储并解析它以检索。这是我写的一个小界面
App.session = (function () {
var self = {};
self.get = function (key) {
var b = sessionStorage.getItem(key);
return b ? JSON.parse(b) : null;
}
self.set = function (key, value) {
var b = JSON.stringify(value);
sessionStorage.setItem(key, b);
}
return self;
})();
var session = App.session;
session.set('foo', 'bar');
var bar = session.get('foo');
console.log(bar);
sessionStorage
不能存储对象,只能存储字符串。
如果你想存储其他东西,你必须使用JSON。
从文档中
每个Storage对象提供对键/值对列表的访问,它们有时被称为物品。键是字符串。任何字符串(包括空字符串)是一个有效的键。值也是类似的字符串。
重点补充道。你不能在sessionStorage中存储对象。
Mozilla对此也有注释:
注意:虽然这些值可以通过标准来设置和读取JavaScript属性访问方法getItem和setItem方法的使用建议。
注意:请记住,您在任何存储中存储的所有内容通过它的.toString方法转换为字符串在储存之前。所以试图存储一个普通的对象会导致字符串"[object object]"要存储,而不是对象或其JSON表示。使用原生JSON解析和序列化方法是一种很好的常用的存储方法对象的字符串格式
相关文章:
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 浏览器仍然是单线程的吗
- 重新审视网站优化的经验法则:JavaScript在现代浏览器中仍然是必不可少的
- 调整图像大小以使其完美地适合幻灯片,问题仍然是用 for 循环将 CSS 代码替换为我的图像
- 为什么“使用严格”仍然是一个字符串字面
- 不可设置和不可写属性仍然是可变的
- 速度.js重置 {bottom, top} 为“auto” 不起作用,它仍然是“0px”
- 持续时间为零的css转换是否仍然是硬件加速的
- getElementById仍然是“;“安全”;DOM操作方法
- 即使AngularJS和PHP的凭据不正确,登录仍然是直接的
- 在Twitter Bootstrap 3按钮(复选框)仍然是灰色后,它是未检查的
- PHP飞到购物车效果jquery ajax /我想提交表单,但仍然是相同的页面
- Javascript:虽然变量是在全局作用域中声明的,但它在函数内部仍然是未定义的
- 为什么我的任何时间DateTimePicker jQuery插件仍然是一个常见的文本框
- 弹出窗口浏览器仍然是Windows主页的一部分
- Javascript的全局值在试图通过函数改变后仍然是NULL
- 我仍然是JS的新手,不能看到我在这个基本计算脚本上的错误
- 在元素上使用Object.defineProperty.数据集,但属性仍然是可更改的
- SessionStorage似乎仍然是空的
- jQuery图像延迟加载仍然是优化网页加载速度的解决方案