完整的操作cookie的例子
<html>
<head>
<title>提示信息</title>
<META content="text/html; charset=Big5" http-equiv="Content-Type"/>
</head>
<script language="JavaScript">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 SetCookie(name,value){
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc>2)?argv[2]:null;
var path = (argc>3)?argv[3]:null;
var domain = (argc>4)?argv[4]:null;
var secure = (argc>5)?argv[5]:false;
document.cookie = name+"="+escape(value)+
((expires==null)?"":(";expires="+
expires.toGMTString()))+
((path==null)?"":(";path="+path))+
((domain==null)?"":(";domain="+domain))+
((secure==true)?";secure":"");
}
function DeleteCookie(name){
var exp = new Date();
exp.setTime(exp.getTime()-1);
var cval = GetCookie(name);
document.cookie = name+"="+cval+";expires="+exp.toGMTString();
}
//Input iDate 是以天計數,設置過期的天數
//Outout 返回毫秒數
function setExpireDate(iDate)
{
return parseInt(iDate)*24*60*60*1000;
}
//如果cookie是空可以給cookie設置初使值.
//返回當前cookie的值
function initCookie(initValue){
if(GetCookie("nextalert")==null){
var expiryDate = new Date();
expiryDate.setTime(expiryDate.getTime()+setExpireDate("365"));
SetCookie("nextalert",initValue,expiryDate,"/");
}
return GetCookie("nextalert");
}
function operaCookie(strValue){
var expiryDate = new Date();
expiryDate.setTime(expiryDate.getTime()+setExpireDate("365"));
SetCookie("nextalert",strValue,expiryDate,"/");
}
</script>
<body>
<table border=0 >
<input type="button" onclick="operaCookie('yes')" value="Test Cookie">
<input type="button" onclick="alert(GetCookie('nextalert'))" value="Test Cookie">
</table>
</body>
</html>
<html>
<head>
<title>提示信息</title>
<META content="text/html; charset=Big5" http-equiv="Content-Type"/>
</head>
<script language="JavaScript">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 SetCookie(name,value){
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc>2)?argv[2]:null;
var path = (argc>3)?argv[3]:null;
var domain = (argc>4)?argv[4]:null;
var secure = (argc>5)?argv[5]:false;
document.cookie = name+"="+escape(value)+
((expires==null)?"":(";expires="+
expires.toGMTString()))+
((path==null)?"":(";path="+path))+
((domain==null)?"":(";domain="+domain))+
((secure==true)?";secure":"");
}
function DeleteCookie(name){
var exp = new Date();
exp.setTime(exp.getTime()-1);
var cval = GetCookie(name);
document.cookie = name+"="+cval+";expires="+exp.toGMTString();
}
//Input iDate 是以天計數,設置過期的天數
//Outout 返回毫秒數
function setExpireDate(iDate)
{
return parseInt(iDate)*24*60*60*1000;
}
//如果cookie是空可以給cookie設置初使值.
//返回當前cookie的值
function initCookie(initValue){
if(GetCookie("nextalert")==null){
var expiryDate = new Date();
expiryDate.setTime(expiryDate.getTime()+setExpireDate("365"));
SetCookie("nextalert",initValue,expiryDate,"/");
}
return GetCookie("nextalert");
}
function operaCookie(strValue){
var expiryDate = new Date();
expiryDate.setTime(expiryDate.getTime()+setExpireDate("365"));
SetCookie("nextalert",strValue,expiryDate,"/");
}
</script>
<body>
<table border=0 >
<input type="button" onclick="operaCookie('yes')" value="Test Cookie">
<input type="button" onclick="alert(GetCookie('nextalert'))" value="Test Cookie">
</table>
</body>
</html>
{
var Days = 30;
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
老兄上面只是一维的,我现在要的是二纬的,能不能帮帮忙?先写入 Cookies("asp")("ok")="yes"
然后读取,可以吗?
我这里只有一个二维的读取代码没有写入的,大家帮帮忙~~~
----------------------------------------------------
function setCookie(name,value){
var tmp=name.split("."),str,reg
if(tmp.length==1){
document.cookie=tmp[0] + "=" + value
return;
} if(str=getCookie(name)){
var reg=new RegExp("(^|&)"+tmp[1]+"="+str)
setCookie(tmp[0],getCookie(tmp[0]).replace(reg,"$1"+tmp[1]+"="+value))
return;
}
if(str=getCookie(tmp[0])){
setCookie(tmp[0],str+"&"+tmp[1]+"="+value)
return;
}
setCookie(tmp[0],tmp[1]+"="+value)
}
function getCookie(name){
var tmp=name.split(".")
var arr,reg=new RegExp("(^| )"+tmp[0]+"=([^;]*)");
if(!(arr=document.cookie.match(reg)))return null;
if(tmp[1]==null) return arr[2];
reg=new RegExp("(^|&)"+tmp[1]+"=([^&]*)");
if(!(arr=arr[2].match(reg)))return null;
return arr[2];
}
setCookie("asp.ok","yes")
setCookie("asp.ok2","yes")
setCookie("asp.ok","no")
alert(getCookie("asp.ok"))
</script>ps.还有中文和特殊字符urlEncode,可参见我的稳当
vbs的urlencoding的补全,和urldecoding