A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > javascript封装 Cookie 应用接口

javascript封装 Cookie 应用接口

时间:2015-08-07 15:56作者:yezheng人气:31

 本文章记录本人在学习 Cookie 中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。
封装函数
在默认的情况下存取Cookie是一件比较麻烦的事情。由于Cookie是通过字符串来存储信息的,所以容易导致在执行赋值运算的时需要转换读取信息的数据类型。而且Cookie信息的字符串本身就令人讨厌,在经常使用Cookie信息的 Web 应用中格外的不方便。所以需要自行的封装一个Cookie函数来提供开发效率!
定义一个函数Cookie(),这个函数能够写入指定的Cookie信息,删除指定的Cookie信息,也能够读取指定名称的Cookie值,另外,在该函数中还可以制定Cookie信息的有效期、有效路径、作用域和安全性选项设置。完整的代码:

var Cookie = function(name, value, options) {

// 如果第二个参数存在

if (typeof value != 'undefined') {

options = options || {};

if (value === null) {

// 设置失效时间

options.expires = -1;

}

var expires = '';

// 如果存在事件参数项,并且类型为 number,或者具体的时间,那么分别设置事件

if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {

var date;

if (typeof options.expires == 'number') {

date = new Date();

date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));

} else {

date = options.expires;

}

expires = '; expires=' + date.toUTCString();

}

var path = options.path ? '; path=' + options.path : '', // 设置路径

domain = options.domain ? '; domain=' + options.domain : '', // 设置域

secure = options.secure ? '; secure' : ''; // 设置安全措施,为 true 则直接设置,否则为空

 

// 把所有字符串信息都存入数组,然后调用 join() 方法转换为字符串,并写入 Cookie 信息

document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');

} else { // 如果第二个参数不存在

var CookieValue = null;

if (document.cookie && document.cookie != '') {

var Cookie = document.cookie.split(';');

for (var i = 0; i < Cookies.length; i++) {

var Cookie = (Cookie[i] || "").replace( /^s+|s+$/g, "");

if (Cookie.substring(0, name.length + 1) == (name + '=')) {

CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));

break;

}

}

}

return CookieValue;

}

};

如何使用
写入Cookie信息:

// 简单写入一条 Cookie 信息

cookie("user", "baidu");

// 写入一条 Cookie 信息,并且设置更多选项

cookie("user", "baidu", {

expires: 10, // 有效期为 10 天

path: "/", // 整个站点有效

domain: "www.baidu.com", // 有效域名

secure: true // 加密数据传输

});

2.读取Cookie信息:

cookie("user");

3.删除Cookie信息:

cookie("user", null);

再给大家分享一个封装好的代码

//向cookie写入数据

function writeCookie(name, value, days) {

// 定义有效日期(cookie的有效时间)

var expires = "";


// 为有效日期赋值

if (days) {

var date = new Date();

//设置有效期(当前时间+时间段)

date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));//时间段为毫秒数

expires = "; expires=" + date.toGMTString();

}

// 给cookie赋值 name, value和expiration date(有效期)

document.cookie = name + "=" + value + expires + "; path=/";

}

//读取cookie数据

function readCookie(name) {

var searchName = name + "=";

var cookies = document.cookie.split(';');

for(var i=0; i < cookies.length; i++) {

var c = cookies[i];

while (c.charAt(0) == ' ')

c = c.substring(1, c.length);

if (c.indexOf(searchName) == 0)

return c.substring(searchName.length, c.length);

}

return null;

}

//清楚所有的cookie

function eraseCookie(name) {

// 将时间设置成-1将清除存储在cookie中的数据

writeCookie(name, "", -1);

}

最后,如果文章有什么错误和疑问的地方,请指出。与sf各位共勉!

标签javascript,封装,Cookie,应用,接口,文章

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号