欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Javascript读写cookie的实例源码

程序员文章站 2023-11-24 11:50:40
今天把javascript如何用来创建及存储cookie复习了一下,其中的一点体会拿出来和大家讨论,首先看一下基础知识: 什么是cookie cookie 是存储于访问...

今天把javascript如何用来创建及存储cookie复习了一下,其中的一点体会拿出来和大家讨论,首先看一下基础知识:

什么是cookie

cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 javascript 来创建和取回 cookie 的值。

cookie的例子

名字 cookie: 当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "welcome john doe!" 的欢迎词。而名字则是从 cookie 中取回的。

密码 cookie: 当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。

日期 cookie: 当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"your last visit was on tuesday august 11, 2005!"。日期也是从 cookie 中取回的。

下面来创建一个cookie的实例,如何来创建cookie及取出cookie。

javascript部分代码:

//创建cookie
function setcookie(name, value, expireday) {
 var exp = new date();
 exp.settime(exp.gettime() + expireday*24*60*60*1000); //设置cookie的期限
 document.cookie = name+"="+escape(value)+"; expires"+"="+exp.togmtstring();//创建cookie
}
//提取cookie中的值
function getcookie(name) {
 var cookiestr = document.cookie;
 if(cookiestr.length > 0) {
 var cookiearr = cookiestr.split(";"); //将cookie信息转换成数组
 for (var i=0; i<cookiearr.length; i++) {
  var cookieval = cookiearr[i].split("="); //将每一组cookie(cookie名和值)也转换成数组
  if(cookieval[0] == name) {
  return unescape(cookieval[1]); //返回需要提取的cookie值
  }
 }
 }
}
//测试cookie
function checkcookie() {
 var cookieuser = document.getelementbyid("cookieuser");
 var username = getcookie("username");
 if(username) {
 cookieuser.innerhtml = "您好"+username+",欢迎再次回来!"; 
 } else {
 var value = prompt("请输入用户名", "");
 if(value) {
  setcookie('username', value, 1);
 } else {
  alert("请输入用户名!");
 }
 }
}

主要在于如何提取我们需要的cookie信息,在本例的getcookie函数中主要是将cookie信息转化成数组的方式来查找我们需要提取的cookie值。还可以通过正则表达式的方式来匹配,如下:

function getcookie(name) {
 var cookiestr = document.cookie;
 var cookiearr = cookiestr.match(new regexp(name+"=[a-za-z0-9]*;$"));
 var cookieval = cookiearr.split("=");
 if(cookieval[0] == name) {
 return unescape(cookieval[1]);
 }
}

比如在这个例子中,如果打开浏览器中没有存储名为username的cookie,则会提示用户输入用户名,再次刷新页面时则会显示输入的cookie值。 最后我们可以测试一下代码:

<body onload="checkcookie()">
<p id="cookieuser"></p>
</body>

用javascript可以将信息保存在cookie中,在别的页面可以使用,这样也很方便实用,代码量也不多。不过需要注意的是有些浏览器不支持本地cookie读写操作,需要在线才能读取,也就是把网站发布之后才允许。例如chrome浏览器。

代码如下:

<!doctype html public "-//w3c//dtd html 4.01 transitional//en"
"http://www.w3.org/tr/html4/loose.dtd">
<html>
  <head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <title>cookie的读取例子</title>
   <link href="css/sheet.css" rel="external nofollow" rel="stylesheet" type="text/css">
<script language="javascript">
function writecookie(){//写入cookie
 document.cookie=encodeuri("username="+document.form1.username.value);
 document.cookie=encodeuri("password="+document.form1.password1.value);
}
function readcookie(){//读取cookie
 var cookiestring=decodeuri(document.cookie);//调用decodeuri函数获取cookie
 if(cookiestring.length!=0){//cookie不为空
  var cookies=cookiestring.split(";");//使用字符串的split函数利用“;“分割字符串为数组,这样就把username和password分开了
  for(var i=0;i<cookies.length;i++){
   var cookien=cookies[i].split("=");//使用字符串的split函数利用“=“分割字符串为数组,这样就把username和username的值分开了
   var cookiename=cookien[0];//
   var cookievalue=cookien[1];
   alert("cookie名称为:"+cookiename+" ,值为:"+cookievalue);
 }
}else
alert("cookie为空,请填写信息");
}
</script>
</head>
<body onload="makesnake()">
 <form action="" method="post" name="form1">
  <table >
   <tr align="right"><td>用户名:</td><td><input type="text" name="username" /></td></tr>
   <tr align="right"><td>密码:</td><td><input type="password" name="password1" /></td></tr>
   <tr align="right"><td>确认密码:</td><td><input type="password" name="password2" /></td></tr>
   <tr align="center">
    <td ><input type="button" value="写入cookies" onclick="writecookie();"></td>
    <td><input type="button" value="读取cookies" onclick="readcookie();"></td></tr>
   </table>
  </form>
 </body>
</html>

在chrome运行效果:

(填写好后点击写入再点击读取)

Javascript读写cookie的实例源码

Javascript读写cookie的实例源码

注:在ie、火狐等浏览器可以直接打开html读取cookie操作,但在chrome需要发布之后在线才行。即在浏览器输入ip打开。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接