zoukankan      html  css  js  c++  java
  • JS设置cookie,删除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等等。

  • 相关阅读:
    例2-3
    例2-2
    例2-1
    p14
    第一次作业
    例1-1
    第二次作业(2)
    第二次作业
    第三章3-3
    第三章3-2
  • 原文地址:https://www.cnblogs.com/wdlhao/p/5471041.html
Copyright © 2011-2022 走看看