以纯 javascript 读取 cookie(这是一个对象)
Reading a cookie(which is an object) in pure javascript
我正在尝试仅以 javascript 格式读取 cookie。我没有使用任何 jquery cookie 库。
这是我的 cookie 的样子:
var task_cookie = {
task1 : getTask('task1')
, task2 : getTask('task2')
, task3: getTask('task3')
, task4: getTask('task4')
, task5: getTask('task5')
};
document.cookie = "task_cookie=" + JSON.stringify(task_cookie)+";path=/;domain=.task.com";
现在,我试图稍后在另一个页面上读取 task_cookie 的值
我在 Whosebug 上找到了这段代码
function read_cookie(name) {
var result = document.cookie.match(new RegExp(name + '=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result;
}
但这会给我整个 task_cookie.I 但是我想获取 task_cookie 中的每个键值。我想要这样的东西:
$.cookie('task1')
$.cookie('task2')
然而,在我进行字符串化后,这在 jquery 中非常容易。但出于某种原因,我需要使用纯 javascript。如何获取 task_cookie 对象内的 task1 、 task2 等的各个值?我很难弄明白这一点:/
所以在获取对象后从cookie中读取值。
function read_cookie(name) {
var result = document.cookie.match(new RegExp('tasj_cookie=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result ? result[name] : null;
}
更好的是,使用本地存储而不是 cookie。
localstorage.setItem("task1", getTask('task1'));
function read_storage (name) {
return localstorage.getItem(name); //might need to use JSON.parse() depending on the data
}
console.log(read_storage("task1"));
该函数 return 处理整个对象,因此您可以 select 来自该函数的单个 cookie:
read_cookie('task_cookie')['task1'];
或类似的东西。以上只是 return task1
,但您可以遍历所有任务。
更好的是,您可以将 read_cookie
函数设为一个对象方法,并将 cookie 对象 return 设为父对象的 属性。
var cookieHandler = {
get: function(name) {
//code to get cookies
//push to cookies array
},
cookies: []
};
这样您就不必在每次迭代任务时都为全局函数创建一堆实例。
我正在尝试仅以 javascript 格式读取 cookie。我没有使用任何 jquery cookie 库。
这是我的 cookie 的样子:
var task_cookie = {
task1 : getTask('task1')
, task2 : getTask('task2')
, task3: getTask('task3')
, task4: getTask('task4')
, task5: getTask('task5')
};
document.cookie = "task_cookie=" + JSON.stringify(task_cookie)+";path=/;domain=.task.com";
现在,我试图稍后在另一个页面上读取 task_cookie 的值
我在 Whosebug 上找到了这段代码
function read_cookie(name) {
var result = document.cookie.match(new RegExp(name + '=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result;
}
但这会给我整个 task_cookie.I 但是我想获取 task_cookie 中的每个键值。我想要这样的东西:
$.cookie('task1')
$.cookie('task2')
然而,在我进行字符串化后,这在 jquery 中非常容易。但出于某种原因,我需要使用纯 javascript。如何获取 task_cookie 对象内的 task1 、 task2 等的各个值?我很难弄明白这一点:/
所以在获取对象后从cookie中读取值。
function read_cookie(name) {
var result = document.cookie.match(new RegExp('tasj_cookie=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result ? result[name] : null;
}
更好的是,使用本地存储而不是 cookie。
localstorage.setItem("task1", getTask('task1'));
function read_storage (name) {
return localstorage.getItem(name); //might need to use JSON.parse() depending on the data
}
console.log(read_storage("task1"));
该函数 return 处理整个对象,因此您可以 select 来自该函数的单个 cookie:
read_cookie('task_cookie')['task1'];
或类似的东西。以上只是 return task1
,但您可以遍历所有任务。
更好的是,您可以将 read_cookie
函数设为一个对象方法,并将 cookie 对象 return 设为父对象的 属性。
var cookieHandler = {
get: function(name) {
//code to get cookies
//push to cookies array
},
cookies: []
};
这样您就不必在每次迭代任务时都为全局函数创建一堆实例。