javascript/jQuery 在 cookie 中存储对象并检索

标签 javascript jquery cookies

我看到了很多与我的问题类似的问题,但没有完全回答我的问题。

我的问题是我需要存储一个对象的整个实例,这意味着除了他的字段之外,我还需要它的相关方法。

我的代码:

存储对象:

$.cookie(key, JSON.stringify(value), { 过期:过期 });

检索对象:

var value = $.cookie(key); if (值 === null || 值 === 未定义) { 返回值=“”; } 返回 JSON.parse(value);

我从 cookie 获取的对象有其字段,但该对象没有我在存储之前附加的方法。

为了让你们/女士们能够理解我正在尝试使用什么对象,我提供了以下 fiddle :https://jsfiddle.net/5hhgtnxh/

最佳答案

如果没有一些技巧,您根本无法将方法或函数保存到 cookie 或本地存储,JSON.stringify 将省略键,而函数仅保留数据。这对于保存方法是必要的吗?它们已经在代码中了。您可以将对象拆分为数据和方法,仅将数据保存到 cookie/localstorage。

顺便说一句,由于 JSON 不是用于 Javascript,而是用于在不同系统或组件之间传递数据,因此它不允许函数作为值。请参阅http://json.org/了解详细的格式规范。

非常简单的例子:

var CustomObject = function (data) {
  var data = data;
  this.getX = function () {
    return data.x;
  };
  this.setX = function (x) {
    data.x = x;
  };
  this.getData = function () {
    return data;
  };
};

var o = new CustomObject({});
o.setX(42);
$.cookie('myObj', JSON.stringify(o.getData()));

//later, let's initialize obj from cookie

var custData = $.cookie('myObj');
var o2 = new CustomObject(custData);

关于javascript/jQuery 在 cookie 中存储对象并检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399970/

相关文章:

javascript - 用于了解 HTML5 视频何时准备好在没有黑色背景的情况下播放的事件

Javascript - 将下拉框中的值传递给 Google Maps API

javascript - 带悬垂的jquery滑动抽屉

javascript - 使用 AngularJS 更新 cookie

javascript - AJAX 请求不发送来自同一域的 Cookies 设置

javascript - 在 JavaScript 中将本地日期和时间显示为年-月-日时-分-秒

javascript - Bootstrap - 仅在第二次单击后才触发弹出窗口

javascript - 3rd 方 javascript 设置 document.cookie

javascript - 像 '&' 和 '£' 这样的特殊字符会剪切我传递的 Twitter 文本

javascript - jQuery生成输入框的方法