流箫 的 Blog

兴趣是最好的老师! ----Interest is the best teacher.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JavaScript与Cookie(一) :Cookie的读取和写入

Posted on 2009-12-04 15:14  给时光以生命18  阅读(395)  评论(0编辑  收藏  举报

Html代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>JavaScript与Cookie(一)</title>
    </head>
    <body>
        <form name="frm1" method="post" onsubmit="savecookie()">
            <p>CookieMessage:<input type="text" name="cookieInfo" size="50"/></p>
            <p>Valid-time:<input type="text" name="time" size="10" value="30"/>Please input a integer.</p>
            <div style="border:1px solid #ccc;" id="divInfo"></div>
            <p><input type="submit" name="submit" value="Submit">
            <input type="reset" name="reset" value="Reset"/></p>
            <p><input type="button" onclick="writeAllCookie()" value="writeAllCookie"/></p>
            <p><input type="text" name="txtGetSpc"/> <input type="button" value="GetSpecificCookie" onclick="getCk()" </p>
        </form>
    </body>
</html>

 

 

Js代码:

<script language="JavaScript" type="text/javascript">
    /*
     * 设置Cookie的通用函数,其中name是必须的参数。其它为可选,故用条件语句判断。
     * 在设置Cookie时若不设置过期时间则该Cookie为临时的,仅当此次会话可用
     */
    function setcookie(name, value, expires, path, domain, secure) {
        var curcookie = name + "=" + encodeURI(value)
                        +((expires) ? ";expires=" + expires.toGMTString() : "")
                        +((path) ? ";path=" + path : "")
                        +((domain) ? ";domain=" + domain : "")
                        +((secure) ? ";secure" : "");
        document.cookie = curcookie;
    }
    
    //Cookie的写入
    function savecookie() {
        var cookieInfo = document.frm1.cookieInfo.value;
        var time = document.frm1.time.value;
        var now = new Date();
        now.setDate( now.getDate() + time);
        setcookie("myCookie",cookieInfo,now);
        document.write(decodeURI(document.cookie));
    }
    
    //读取所有Cooke
    function writeAllCookie() {
        document.cookie = "name1=" + encodeURI("名字1");
        document.cookie = "name2=" + encodeURI("名字2");
        document.cookie = "name3=" + encodeURI("名字3");
        var strInfo;
        var cookie = document.cookie.split(";");
        for(var i=0; i<cookie.length; i++) {
            var ck = cookie[i].split("=");
            var cName = ck[0];
            var cValue = decodeURI(ck[1]);
            strInfo += cName + "=" + cValue +"<br>";
        }
        document.getElementById("divInfo").innerHTML = strInfo;
    }
    
    /*
     * 读取特定Cookie的通用函数
     */
    function getSpecificCookie(name) {
        if(document.cookie.length > 0) {
            start = document.cookie.indexOf(name + "=");
            if( start != -1) {
                start = start + name.length + 1;
                end = document.cookie.indexOf(";",start);
                if( end == -1) {
                    end = document.cookie.length;
                }
            }
            return decodeURI(document.cookie.substring(start,end));
        }
        return "";
    }
    
    function getCk(){
        name = document.frm1.txtGetSpc.value;
        alert( getSpecificCookie(name));
    }
</script>