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等等。
以上所述就是本文的全部内容了,希望大家能够喜欢。