首页 > 编程 > JavaScript > 正文

JS设置cookie、读取cookie

2019-11-20 10:31:20
字体:
来源:转载
供稿:网友

JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。

而cookie是运行在客户端的,所以可以用JS来设置cookie。

js设置cookie方法汇总:

第一种:

<script>//设置cookiefunction 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;}//获取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+"=([^;]*)(;|$)");  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 = $("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等等。

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表