使用 JS/JQuery 创建永不过期的 Cookie 数组?
Create Cookie Array that never expires with JS/JQuery?
我有一个带有引语的网站,希望用户能够通过单击 star-icon 来收藏引语。我有这个代码:
jQuery('.fav').click(function(event) {
event.preventDefault();
$this = $(this).parent();
var id = $this.attr("data-id");
// Build the expiration date string:
var expiration_date = new Date();
var cookie_string = '';
expiration_date.setFullYear(expiration_date.getFullYear() + 1);
// Build the set-cookie string:
cookie_string = "fav="+id+"; path=/; expires=" + expiration_date.toGMTString();
// Create/update the cookie:
document.cookie = cookie_string;
});
但这只保存了一个cookie"fav=id"。我想创建一个 cookie 数组,其中所有将被单击的引号都与它们的 id 一起保存在 cookie 数组 "fav" 中,因此我可以向用户显示所有已保存引号的列表。我怎样才能做到这一点?
使用 JSON.stringify() 和 JSON.parse() 方法将数组或对象作为字符串存储在 cookie 中,并在以后检索它。
Cookie 只能作为字符串保存。如果我想模拟一个数组,我将对其进行序列化和反序列化。可以使用 Json 库
写入数组
var cookieArray= {};
cookieArray[id] = true; //or whatever value
var stringifiedArr = JSON.stringify(cookieArray);
$.cookie("favs",stringifiedArr , { path: '/' });
读取 cookie
var arrFromCookie = $.cookie("favs");
var favsCookieData = JSON.parse(arrFromCookie);
我有一个带有引语的网站,希望用户能够通过单击 star-icon 来收藏引语。我有这个代码:
jQuery('.fav').click(function(event) {
event.preventDefault();
$this = $(this).parent();
var id = $this.attr("data-id");
// Build the expiration date string:
var expiration_date = new Date();
var cookie_string = '';
expiration_date.setFullYear(expiration_date.getFullYear() + 1);
// Build the set-cookie string:
cookie_string = "fav="+id+"; path=/; expires=" + expiration_date.toGMTString();
// Create/update the cookie:
document.cookie = cookie_string;
});
但这只保存了一个cookie"fav=id"。我想创建一个 cookie 数组,其中所有将被单击的引号都与它们的 id 一起保存在 cookie 数组 "fav" 中,因此我可以向用户显示所有已保存引号的列表。我怎样才能做到这一点?
使用 JSON.stringify() 和 JSON.parse() 方法将数组或对象作为字符串存储在 cookie 中,并在以后检索它。
Cookie 只能作为字符串保存。如果我想模拟一个数组,我将对其进行序列化和反序列化。可以使用 Json 库
写入数组
var cookieArray= {};
cookieArray[id] = true; //or whatever value
var stringifiedArr = JSON.stringify(cookieArray);
$.cookie("favs",stringifiedArr , { path: '/' });
读取 cookie
var arrFromCookie = $.cookie("favs");
var favsCookieData = JSON.parse(arrFromCookie);