js中cookie的基本用法简介

系统 1381 0
此例子包含互动操作请参看http://www.quirksmode.org/js/ Examplecookies.html

脚本


这里有你需要的三个脚本


function createCookie(name,value,days) {

       if (days) {

              var date = new Date();

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

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

       }

       else var expires = ""$$

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

}


function readCookie(name) {

       var nameEQ = name + "="$$

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

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

              var c = ca[i];

              while (c.charAt(0)==' ') c = c.substring(1,c.length);

              if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

       }

       return null;

}


function eraseCookie(name) {

       createCookie(name,"",-1);

}

解释:

这个函数并不特别复杂,最难的部分就是为设定cookie建立正确的语法。


createCookie

当调用createCookie()时需要给出三个信息片段(参数):cookie的名字,值和保留cookie的天数,下面的情况是键值对变为 ppkcookie=testcookie 并保留cookie7天。

createCookie(‘ppkcookie’,’testcookie’,7)


如果将天数设为0,在关闭浏览器时cookie也就会被清除了,若将天数设为负数,cookie将即刻被清除。


这个函数接受参数并开始做事:

Function createCookie(name,value,days){

首先查看是否有days值,如果没有我们就不必进行时间计算:

If(days){

如果有days值,新建一个包含现在日期Date对象:

var date =new Date();

接下来得到当前时间(毫秒)并加上取得的天数(转换为毫秒)。然后赋值给date变量,现在我们就有了cookie过期需要的时间的毫秒值。

Date.setTime(date.getTime()+(days*24*60*60*1000));

把date的UTC/GMT格式赋给cookie需要的变量expires

var expires =”; expires=”+date.toGMTString();

}

如果传递给函数的days为0,expires就设为空,这样的话当关闭浏览器时cookie就过期了

Else var expires =””;

最后把新的cookie按照正确的语法写入document.cookie中:

Document.cookie=name+”=”+value+expires+”; path=/”;


到此cookie建立成功。


readCookie


要读取cookie,调用这个函数并传递cookie的name。把name放入一个变量。首先检查是否这个变量已被赋值(如果cookie不存在,这个变量变为null,这可能会打乱函数的执行),然后做任何想做的事:

Var x =readCookie(‘ppkcookie1’)

If(x){

       [do something with x]

}

函数接收参数并开始执行:

Function readCookie(name){

然后准备搜索名为name的cookie,把=附加到name后,并把它赋给新的字符串变量nameEQ:

Var nameEQ=name+”=”;

然后用分号(;)把document.cookie分割,把分割后的数组赋给变量ca,其中包含此域和路径的所有cookies:

Var ca = document.cookie.split(‘;’);

遍历数组(即cookies):

For(var i=0;i<ca.length;i++){

把要被检查的cookie赋给变量c

Var c=ca[i];

如果第一个字符为空格,用substring()方法去掉,循环此步骤直到第一个字符不是空格为止:

While(c.charAt(0)==’ ‘) c=c.substring(1,c.length);

现在字符串c的值开始于当前cookie的name,检查是否这个name是我们需要的cookie的:

If(c.indexOf(nameEQ)==0)

我们已经找到我们要找的cookie。现在只需要返回cookie的值,这个值就是c中nameEQ后面的部分。返回值后函数也结束:任务完成!

If(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);

}

如果遍历所有cookies后没有发现要找的name,那么cookie就不是当前的,返回null

Return null

}

Cookie读取完成


EraseCookie

清除cookie是非常简单的。

eraseCookie(’ppkcookie’)

把要清除的cookie的name传递过去

Function eraseCookie(name){

调用createCookie()将cookie的过期日期设置为以前的某个时间

createCookie(name,””,-1);


js中cookie的基本用法简介


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论