JS设置cookie、读取cookie

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

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

js设置cookie方法汇总:

第一种:

<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等等。

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

以上是 JS设置cookie、读取cookie 的全部内容, 来源链接: utcz.com/z/320565.html

回到顶部