js設置cookie以及刪除

js設置cookie有很多方法

第一個(是w3c官網做法)

<script>
//設置cookie
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}
//獲取cookie
function getCookie(cname) {
    var name = cname + "=";
    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);
        if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
    }
    return "";
}
//清除cookie  
function clearCookie(name) {  
    setCookie(name, "", -1);  
}  
function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
}
checkCookie();
</script>

第二個:

<script>
//JS操作cookies方法!
//寫cookies
function setCookie(c_name, value, expiredays){
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
  }
//讀取cookies
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return (arr[2]);
    else
        return null;
}
//刪除cookies
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();
}
//使用示例
setCookie("username","Darren",30)
alert(getCookie("username"));
</script>

第三個:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
        <script language="JavaScript" type="text/javascript">
            
            function addCookie(objName, objValue, objHours){//添加cookie
                var str = objName + "=" + escape(objValue);
                if (objHours > 0) {//爲0時不設定過期時間,瀏覽器關閉時cookie自動消失
                    var date = new Date();
                    var ms = objHours * 3600 * 1000;
                    date.setTime(date.getTime() + ms);
                    str += "; expires=" + date.toGMTString();
                }
                document.cookie = str;
                alert("添加cookie成功");
            }
            
            function getCookie(objName){//獲取指定名稱的cookie的值
                var arrStr = document.cookie.split("; ");
                for (var i = 0; i < arrStr.length; i++) {
                    var temp = arrStr[i].split("=");
                    if (temp[0] == objName)
                        return unescape(temp[1]);
                }
            }
            
            function delCookie(name){//爲了刪除指定名稱的cookie,可以將其過期時間設定爲一個過去的時間
                var date = new Date();
                date.setTime(date.getTime() - 10000);
                document.cookie = name + "=a; expires=" + date.toGMTString();
            }
            
            function allCookie(){//讀取所有保存的cookie字符串
                var str = document.cookie;
                if (str == "") {
                    str = "沒有保存任何cookie";
                }
                alert(str);
            }
            
            function $(m, n){
                return document.forms[m].elements[n].value;
            }
            
            function add_(){
                var cookie_name = $("myform", "cookie_name");
                var cookie_value = $("myform", "cookie_value");
                var cookie_expireHours = $("myform", "cookie_expiresHours");
                addCookie(cookie_name, cookie_value, cookie_expireHours);
            }
            
            function get_(){
                var cookie_name = $("myform", "cookie_name");
                var cookie_value = getCookie(cookie_name);
                alert(cookie_value);
            }
            
            function del_(){
                var cookie_name = $("myform", "cookie_name");
                delCookie(cookie_name);
                alert("刪除成功");
            }
        </script>
    </head>
    <body>
        <form name="myform">
            <div>
                <label for="cookie_name">
                    名稱
                </label>
                <input type="text" name="cookie_name" />
            </div>
            <div>
                <label for="cookie_value">
                值
                </lable>
                <input type="text" name="cookie_value" />
            </div>
            <div>
                <label for="cookie_expireHours">
                多少個小時過期
                </lable>
                <input type="text" name="cookie_expiresHours" />
            </div>
            <div>
                <input type="button" value="添加該cookie" onclick="add_()"/><input type="button" value="讀取所有cookie" onclick="allCookie()"/><input type="button" value="讀取該名稱cookie" onclick="get_()"/><input type="button" value="刪除該名稱cookie" onclick="del_()"/>
            </div>
        </form>
</body>
</html>

**

注意:

**
chrome瀏覽器在本地獲取不到cookie。必須在服務器上纔可以。如果是本地的話,你可以放到local的www目錄下面。
Google Chrome只支持在線網站的cookie的讀寫操作,對本地HTML的cookie操作是禁止的。所以下面的代碼如果你寫在一個本地的html文件中,將彈出的對話框內容爲空。
document.cookie = “Test=cooo”;
alert(document.cookie);
如果這個頁面是在線網站的內容,則會正常顯示cookie內容Test=cooo等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章