JavaScript实现cookies设置【读,增,删,修等操作】
上一篇 / 下一篇 2008-02-23 00:02:31 / 个人分类:转载
JavaScript实现cookies设置,在网上有很多代码,但是功能完全的确很少找到,前段时间做ajax程序,需要js操作cookies 就自己写了段JS,这里提供给大家,希望有点用处
未加密的JS文件

/**//*
GetCookie(name) 获取Cookies方法 ,name为名字
SetCookie(name,value,interval,number,[path],[domain],[secure]) 设置cookies方法
name 名称,value cookies值,interval("y" 年,"q"季,"m"月,"d"日,"h"时,"M"分,"s"秒,默认:日),number:数量级
[path],[domain],[secure] 可缺省。
DelCookie(name) 删除设置过期cookies , name:cookies名称
mr.junval@qq.com 2008
*/

function GetCookieVal(offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;

while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

function DelCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function SetCookie(name, value,interval,number)
{
if (interval == "0") return false;
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = DateAdd(interval,number,expdate);
var path = (argc > 4) ? argv[4] : null;
var domain = (argc > 5) ? argv[5] : null;
var secure = (argc > 6) ? argv[6] : false;
document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expires.toGMTString()))
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}

function DateAdd(interval,number,date)
{

switch(interval)
{

case "y":
{
date.setFullYear(date.getFullYear()+number);
return date;
break;
}

case "q":
{
date.setMonth(date.getMonth()+number*3);
return date;
break;
}

case "m":
{
date.setMonth(date.getMonth()+number);
return date;
break;
}

case "w":
{
date.setDate(date.getDate()+number*7);
return date;
break;
}

case "d":
{
date.setDate(date.getDate()+number);
return date;
break;
}

case "h":
{
date.setHours(date.getHours()+number);
return date;
break;
}

case "M":
{
date.setMinutes(date.getMinutes()+number);
return date;
break;
}

case "s":
{
date.setSeconds(date.getSeconds()+number);
return date;
break;
}

case "0":
{
return date;
break;
}
}
}
采用脚本压缩后的JS文件(通过测试完全可以使用)

eval(function(p,a,c,k,e,d)
{e=function(c)
{return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('n X(D){8 p=f.e.Y(";",D);t(p==-1)p=f.e.z;9 10(f.e.U(D,p))}n F(g){8 C=g+"=";8 W=C.z;8 P=f.e.z;8 i=0;13(i<P){8 j=i+W;t(f.e.U(i,j)==C)9 X(j);i=f.e.Y(" ",i)+1;t(i==0)b}9 k}n 11(g){8 u=K I();u.12(u.Z()-1);8 H=F(g);f.e=g+"="+H+"; o="+u.L()}n E(g,N,l,a){t(l=="0")9 Q;8 G=K I();8 A=E.J;8 v=E.J.z;8 o=V(l,a,G);8 x=(v>4)?A[4]:k;8 r=(v>5)?A[5]:k;8 B=(v>6)?A[6]:Q;f.e=g+"="+1c(N)+((o==k)?"":("; o="+o.L()))+((x==k)?"":("; x="+x))+((r==k)?"":("; r="+r))+((B==17)?"; B":"")}n V(l,a,2){1a(l){c"y":{2.16(2.18()+a);9 2;b}c"q":{2.O(2.T()+a*3);9 2;b}c"m":{2.O(2.T()+a);9 2;b}c"w":{2.S(2.R()+a*7);9 2;b}c"d":{2.S(2.R()+a);9 2;b}c"h":{2.1d(2.19()+a);9 2;b}c"M":{2.14(2.15()+a);9 2;b}c"s":{2.1e(2.1b()+a);9 2;b}c"0":{9 2;b}}}',62,77,'||date||||||var|return|number|break|case||cookie|document|name||||null|interval||function|expires|endstr||domain||if|exp|argc||path||length|argv|secure|arg|offset|SetCookie|GetCookie|expdate|cval|Date|arguments|new|toGMTString||value|setMonth|clen|false|getDate|setDate|getMonth|substring|DateAdd|alen|GetCookieVal|indexOf|getTime|unescape|DelCookie|setTime|while|setMinutes|getMinutes|setFullYear|true|getFullYear|getHours|switch|getSeconds|escape|setHours|setSeconds'.split('|'),0,{}))

未加密的JS文件

/**//*
GetCookie(name) 获取Cookies方法 ,name为名字
SetCookie(name,value,interval,number,[path],[domain],[secure]) 设置cookies方法
name 名称,value cookies值,interval("y" 年,"q"季,"m"月,"d"日,"h"时,"M"分,"s"秒,默认:日),number:数量级
[path],[domain],[secure] 可缺省。
DelCookie(name) 删除设置过期cookies , name:cookies名称
mr.junval@qq.com 2008
*/
function GetCookieVal(offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

function DelCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function SetCookie(name, value,interval,number)
{
if (interval == "0") return false;
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = DateAdd(interval,number,expdate);
var path = (argc > 4) ? argv[4] : null;
var domain = (argc > 5) ? argv[5] : null;
var secure = (argc > 6) ? argv[6] : false;
document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expires.toGMTString()))
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}

function DateAdd(interval,number,date)
{
switch(interval)
{
case "y":
{
date.setFullYear(date.getFullYear()+number);
return date;
break;
}
case "q":
{
date.setMonth(date.getMonth()+number*3);
return date;
break;
}
case "m":
{
date.setMonth(date.getMonth()+number);
return date;
break;
}
case "w":
{
date.setDate(date.getDate()+number*7);
return date;
break;
}
case "d":
{
date.setDate(date.getDate()+number);
return date;
break;
}
case "h":
{
date.setHours(date.getHours()+number);
return date;
break;
}
case "M":
{
date.setMinutes(date.getMinutes()+number);
return date;
break;
}
case "s":
{
date.setSeconds(date.getSeconds()+number);
return date;
break;
}
case "0":
{
return date;
break;
}
}
}采用脚本压缩后的JS文件(通过测试完全可以使用)

eval(function(p,a,c,k,e,d)
{e=function(c)
{return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('n X(D){8 p=f.e.Y(";",D);t(p==-1)p=f.e.z;9 10(f.e.U(D,p))}n F(g){8 C=g+"=";8 W=C.z;8 P=f.e.z;8 i=0;13(i<P){8 j=i+W;t(f.e.U(i,j)==C)9 X(j);i=f.e.Y(" ",i)+1;t(i==0)b}9 k}n 11(g){8 u=K I();u.12(u.Z()-1);8 H=F(g);f.e=g+"="+H+"; o="+u.L()}n E(g,N,l,a){t(l=="0")9 Q;8 G=K I();8 A=E.J;8 v=E.J.z;8 o=V(l,a,G);8 x=(v>4)?A[4]:k;8 r=(v>5)?A[5]:k;8 B=(v>6)?A[6]:Q;f.e=g+"="+1c(N)+((o==k)?"":("; o="+o.L()))+((x==k)?"":("; x="+x))+((r==k)?"":("; r="+r))+((B==17)?"; B":"")}n V(l,a,2){1a(l){c"y":{2.16(2.18()+a);9 2;b}c"q":{2.O(2.T()+a*3);9 2;b}c"m":{2.O(2.T()+a);9 2;b}c"w":{2.S(2.R()+a*7);9 2;b}c"d":{2.S(2.R()+a);9 2;b}c"h":{2.1d(2.19()+a);9 2;b}c"M":{2.14(2.15()+a);9 2;b}c"s":{2.1e(2.1b()+a);9 2;b}c"0":{9 2;b}}}',62,77,'||date||||||var|return|number|break|case||cookie|document|name||||null|interval||function|expires|endstr||domain||if|exp|argc||path||length|argv|secure|arg|offset|SetCookie|GetCookie|expdate|cval|Date|arguments|new|toGMTString||value|setMonth|clen|false|getDate|setDate|getMonth|substring|DateAdd|alen|GetCookieVal|indexOf|getTime|unescape|DelCookie|setTime|while|setMinutes|getMinutes|setFullYear|true|getFullYear|getHours|switch|getSeconds|escape|setHours|setSeconds'.split('|'),0,{}))
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: