完整的操作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>

解决方案 »

  1.   

    function setCookie(name,value)
    {
        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();
    }
      

  2.   


    老兄上面只是一维的,我现在要的是二纬的,能不能帮帮忙?先写入 Cookies("asp")("ok")="yes"
    然后读取,可以吗?
    我这里只有一个二维的读取代码没有写入的,大家帮帮忙~~~
    ----------------------------------------------------
      

  3.   

    写了这么多主要为了和asp的兼容<script>
    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,可参见我的稳当
      

  4.   

    qiushuiwuhen(秋水无恨) :你的读取空格是+,其他的有写字符都是乱码~~~
      

  5.   

    ps.还有中文和特殊字符urlEncode,需要urlDecodehttp://www.blueidea.com/bbs/newsdetail.asp?id=523379
    vbs的urlencoding的补全,和urldecoding