JS设置cookie、读取cookie
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie。
js设置cookie方法汇总:
第一种:
<script> //设置cookie functionsetCookie(cname,cvalue,exdays){ vard=newDate(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); varexpires="expires="+d.toUTCString(); document.cookie=cname+"="+cvalue+";"+expires; } //获取cookie functiongetCookie(cname){ varname=cname+"="; varca=document.cookie.split(';'); for(vari=0;i<ca.length;i++){ varc=ca[i]; while(c.charAt(0)=='')c=c.substring(1); if(c.indexOf(name)!=-1)returnc.substring(name.length,c.length); } return""; } //清除cookie functionclearCookie(name){ setCookie(name,"",-1); } functioncheckCookie(){ varuser=getCookie("username"); if(user!=""){ alert("Welcomeagain"+user); }else{ user=prompt("Pleaseenteryourname:",""); if(user!=""&&user!=null){ setCookie("username",user,365); } } } checkCookie(); </script>
第二种:
<script> //JS操作cookies方法! //写cookies functionsetCookie(c_name,value,expiredays){ varexdate=newDate(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString()); } //读取cookies functiongetCookie(name) { vararr,reg=newRegExp("(^|)"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return(arr[2]); else returnnull; } //删除cookies functiondelCookie(name) { varexp=newDate(); exp.setTime(exp.getTime()-1); varcval=getCookie(name); if(cval!=null) document.cookie=name+"="+cval+";expires="+exp.toGMTString(); } //使用示例 setCookie('username','Darren',30) alert(getCookie("username")); </script>
第三个例子
<html> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <head> <scriptlanguage="JavaScript"type="text/javascript"> functionaddCookie(objName,objValue,objHours){//添加cookie varstr=objName+"="+escape(objValue); if(objHours>0){//为0时不设定过期时间,浏览器关闭时cookie自动消失 vardate=newDate(); varms=objHours*3600*1000; date.setTime(date.getTime()+ms); str+=";expires="+date.toGMTString(); } document.cookie=str; alert("添加cookie成功"); } functiongetCookie(objName){//获取指定名称的cookie的值 vararrStr=document.cookie.split(";"); for(vari=0;i<arrStr.length;i++){ vartemp=arrStr[i].split("="); if(temp[0]==objName) returnunescape(temp[1]); } } functiondelCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间 vardate=newDate(); date.setTime(date.getTime()-10000); document.cookie=name+"=a;expires="+date.toGMTString(); } functionallCookie(){//读取所有保存的cookie字符串 varstr=document.cookie; if(str==""){ str="没有保存任何cookie"; } alert(str); } function$(m,n){ returndocument.forms[m].elements[n].value; } functionadd_(){ varcookie_name=$("myform","cookie_name"); varcookie_value=$("myform","cookie_value"); varcookie_expireHours=$("myform","cookie_expiresHours"); addCookie(cookie_name,cookie_value,cookie_expireHours); } functionget_(){ varcookie_name=$("myform","cookie_name"); varcookie_value=getCookie(cookie_name); alert(cookie_value); } functiondel_(){ varcookie_name=$("myform","cookie_name"); delCookie(cookie_name); alert("删除成功"); } </script> </head> <body> <formname="myform"> <div> <labelfor="cookie_name"> 名称 </label> <inputtype="text"name="cookie_name"/> </div> <div> <labelfor="cookie_value"> 值 </lable> <inputtype="text"name="cookie_value"/> </div> <div> <labelfor="cookie_expireHours"> 多少个小时过期 </lable> <inputtype="text"name="cookie_expiresHours"/> </div> <div> <inputtype="button"value="添加该cookie"onclick="add_()"/><inputtype="button"value="读取所有cookie"onclick="allCookie()"/><inputtype="button"value="读取该名称cookie"onclick="get_()"/><inputtype="button"value="删除该名称cookie"onclick="del_()"/> </div> </form> </body> </html>
注意:
chrome浏览器在本地获取不到cookie。必须在服务器上才可以。如果是本地的话,你可以放到local的www目录下面。
GoogleChrome只支持在线网站的cookie的读写操作,对本地html的cookie操作是禁止的。所以下面的代码如果你写在一个本地的html文件中,将弹出的对话框内容为空。
document.cookie="Test=cooo"; alert(document.cookie);
如果这个页面是在线网站的内容,则会正常显示cookie内容Test=cooo等等。
以上所述就是本文的全部内容了,希望大家能够喜欢。