在纯javascript中读取cookie(对象)
我正在尝试仅用纯javascript读取cookie。我没有使用任何jquerycookie库 我的饼干是这样的:在纯javascript中读取cookie(对象),javascript,cookies,Javascript,Cookies,我正在尝试仅用纯javascript读取cookie。我没有使用任何jquerycookie库 我的饼干是这样的: var task_cookie = { task1 : getTask('task1') , task2 : getTask('task2') , task3: getTask('task3') , task4: getTask('task4
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的值
我在stackoverflow上找到了这个代码
function read_cookie(name) {
var result = document.cookie.match(new RegExp(name + '=([^;]+)'));
result && (result = JSON.parse(result[1]));
return result;
}
但是这会给我整个任务cookie,但是我想获取任务cookie中的每个键值。我想要这样的东西:
$.cookie('task1')
$.cookie('task2')
然而,在我严格化之后,在jquery中这是非常容易的。但出于某种原因,我需要使用纯javascript。如何获取task\u 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"));
函数将返回整个对象,因此您可以从函数中选择单个cookie:
read_cookie('task_cookie')['task1'];
或者类似的东西。上面只返回task1
,但您可以遍历所有任务
更好的是,您可以将read\u cookie
函数设置为对象方法,只需将cookie对象返回到父对象的属性即可
var cookieHandler = {
get: function(name) {
//code to get cookies
//push to cookies array
},
cookies: []
};
这样,您就不必在每次迭代任务时为全局函数创建一组实例 既然你要把它串起来,我很确定你必须把完整的物体拿回来,但是你可以从中得到单独的部分。另外,如果你要使用多个部分,我认为它会更快,因为只需要一个解析。你说的“如果你要使用多个部分”到底是什么意思?