首页 > 代码库 > JS cookie的使用

JS cookie的使用

js设置cookie有很多种方法。

第一种:(这个是w3c官网的代码)

<script>//设置cookiefunction setCookie(cname, cvalue, exdays,cpath) {//注:JS中的函数调用可以和定义时参数个数不同,调用时如不需要可以不加后两个参数或最后一个参数)    var d = new Date();    d.setTime(d.getTime() + (exdays*24*60*60*1000));    var expires = "expires="+d.toUTCString();//过期时间用的是单词 expites
  var path = "path="+cpath;//路径设置,用的单词是path document.cookie = cname + "=" + cvalue + "; " + expires+";"+path;} //获取cookiefunction 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方法!//写cookiesfunction 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());   } //读取cookiesfunction getCookie(name){    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");//正则表达式有很多种,这里的是javascript的正则表达式(和php的正则不同)     if(arr=document.cookie.match(reg))         return (arr[2]);    else        return null;}//删除cookiesfunction 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 = http://www.mamicode.com/$("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 = http://www.mamicode.com/getCookie(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="http://www.mamicode.com/添加该cookie" onclick="add_()"/><input type="button" value="http://www.mamicode.com/读取所有cookie" onclick="allCookie()"/><input type="button" value="http://www.mamicode.com/读取该名称cookie" onclick="get_()"/><input type="button" value="http://www.mamicode.com/删除该名称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等等。

JS cookie的使用