在这个例子中我们要创建一个存储访问者名字的 cookie。当访问者首次访问网站时,他们会被要求填写姓名。名字会存储于 cookie 中。当访问者再次访问网站时,他们就会收到欢迎词。

首先,我们会创建一个可在 cookie 变量中存储访问者姓名的函数:

  1. function setCookie(c_name,value,expiredays)
  2. {
  3. var exdate=new Date()
  4. exdate.setDate(exdate.getDate()+expiredays)
  5. document.cookie=c_name+ "=" +escape(value)+
  6. ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
  7. }

上面这个函数中的参数存有 cookie 的名称、值以及过期天数。

在上面的函数中,我们首先将天数转换为有效的日期,然后,我们将 cookie 名称、值及其过期日期存入 document.cookie 对象。

之后,我们要创建另一个函数来检查是否已设置 cookie:

  1. function getCookie(c_name)
  2. {
  3. if (document.cookie.length>0)
  4. {
  5. c_start=document.cookie.indexOf(c_name + "=")
  6. if (c_start!=-1)
  7. {
  8. c_start=c_start + c_name.length+1
  9. c_end=document.cookie.indexOf(";",c_start)
  10. if (c_end==-1) c_end=document.cookie.length
  11. return unescape(document.cookie.substring(c_start,c_end))
  12. }
  13. }
  14. return ""
  15. }

上面的函数首先会检查 document.cookie 对象中是否存有 cookie。假如 document.cookie 对象存有某些 cookie,那么会继续检查我们指定的 cookie 是否已储存。如果找到了我们要的 cookie,就返回值,否则返回空字符串。

最后,我们要创建一个函数,这个函数的作用是:如果 cookie 已设置,则显示欢迎词,否则显示提示框来要求用户输入名字。

  1. function checkCookie()
  2. {
  3. username=getCookie('username')
  4. if (username!=null && username!="")
  5. {alert('Welcome again '+username+'!')}
  6. else
  7. {
  8. username=prompt('Please enter your name:',"")
  9. if (username!=null && username!="")
  10. {
  11. setCookie('username',username,365)
  12. }
  13. }
  14. }

这是所有的代码:

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function getCookie(c_name)
  5. {
  6. if (document.cookie.length>0)
  7. {
  8. c_start=document.cookie.indexOf(c_name + "=")
  9. if (c_start!=-1)
  10. {
  11. c_start=c_start + c_name.length+1
  12. c_end=document.cookie.indexOf(";",c_start)
  13. if (c_end==-1) c_end=document.cookie.length
  14. return unescape(document.cookie.substring(c_start,c_end))
  15. }
  16. }
  17. return ""
  18. }
  19.  
  20. function setCookie(c_name,value,expiredays)
  21. {
  22. var exdate=new Date()
  23. exdate.setDate(exdate.getDate()+expiredays)
  24. document.cookie=c_name+ "=" +escape(value)+
  25. ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
  26. }
  27.  
  28. function checkCookie()
  29. {
  30. username=getCookie('username')
  31. if (username!=null && username!="")
  32. {alert('Welcome again '+username+'!')}
  33. else
  34. {
  35. username=prompt('Please enter your name:',"")
  36. if (username!=null && username!="")
  37. {
  38. setCookie('username',username,365)
  39. }
  40. }
  41. }
  42. </script>
  43. </head>
  44.  
  45. <body onLoad="checkCookie()">
  46. </body>
  47. </html>

创建和存储 cookie的更多相关文章

  1. JS创建和存储 cookie的一些方法

    在js中cookie的操作与存储及清除cookie都与时间有关,我们只要把cookie过期时间进行有效的设置我们就可以控制它的存储了,下面我来给大家总结一下js中cookie的一些使用技巧 创建和存储 ...

  2. 常用的本地存储-----cookie篇

    1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要最新数据也可以减少向服务器 ...

  3. 创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。

    创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息. <html> & ...

  4. 基于catalog 创建RMAN存储脚本

    --============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的 ...

  5. mvc存储Cookie和读取Cookie方法

    mvc存储Cookie和读取Cookie方法: //存储 HttpCookie cookie = new HttpCookie("User"); System.Text.Encod ...

  6. 关于php存储cookie时path存放路径放的详细介绍

    以前在存储cookie时,没有用到path这个参数,最近开发中在存储cookie时,要用到path参数来决定存储的路径,结果一开始的时候一直取不到值,到最后详细看了一下path参数的介绍后,才顿悟.分 ...

  7. 关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置

    关于pycharm安装出现的interpreter field is empty(解释器为空) 关于pycharm安装出现的interpreter field is empty,无法创建项目存储的位置 ...

  8. Asp.Net Core存储Cookie不成功

    Asp.Net Core存储Cookie不成功 Asp.Net Core2.1生成的项目模板默认实现了<>,所以设置存储Cookie需要做一些处理. 1.第一种是在Startup的Conf ...

  9. 基于ormlite创建数据库存储数据案例

    一直不知道安卓创建数据库存储数据,以前遇到过,但是没有深入研究,今天仔细的看了一下,学习到了一点知识 直接看代码了 public class DatabaseHelper extends OrmLit ...

随机推荐

  1. mysql表关联问题(第二卷:外键1对多之2)

    接着上一卷内容我们继续: 上卷我用的查询语句我们可以看到全部数据,很明显这样的方式查找的数据并不详细: SELECT * FROM usr LEFT JOIN fzu ON usr.fzu = fzu ...

  2. JS调用免费接口根据ip查询位置

    免费接口如下: 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:http://in ...

  3. FFT与NTT专题

    先不管旋转操作,考虑化简这个差异值 $$begin{aligned}sum_{i=1}^n(x_i-y_i-c)^2&=sum_{i=1}^n(x_i-y_i)^2+nc^2-2csum_{i ...

  4. [洛谷P4299] 首都

    题目传送门 还是维护子树信息. 但是这里多了一个找重心的操作. 这里有一个关于树重心的结论,据说可以用反证法证明.反正我不会证 就是:新的重心一定在原来两个重心之间的那条树链上. 这样我们逐步缩小搜索 ...

  5. 网站log记录

    记录网站日志可以清晰的把控网站运行状态. 程序中对外部系统和模块的调用前后都需要记日志,方便接口调试. 数据库操作处需要记日志.

  6. 通过virt-manager给Windowsxp系统配置virtio驱动

    在虚拟机的detail上添加一个硬件设备. 下载virtio.iso文件,我使用的版本126,具体的virtio驱动放到了10.2上的itest的目录中,使用可以找. 在配置中,添加virtio硬盘. ...

  7. Android Pay正式启用 支付宝们还好吗

    Pay正式启用 支付宝们还好吗" title="Android Pay正式启用 支付宝们还好吗"> 苹果发布会上能够真正让人眼前一亮的产品并不多,但对于" ...

  8. Web 通信技术 ——跨文档信息传输(JavaScript)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.html * 作者:常轩 * 微信公众号:Worldh ...

  9. Centos 7 使用Securecrt 配置Public key 登录

    环境:Centos 7 SecureCRT 版本:8.0.4 需求:配置使用Public key 登录服务器禁用密码登录 1. 配置使用SecureCRT,生成Public key 跟私钥 2. 配置 ...

  10. Spring Boot 2.x基础教程:使用MyBatis访问MySQL

    之前我们已经介绍了两种在Spring Boot中访问关系型数据库的方式: 使用spring-boot-starter-jdbc 使用spring-boot-starter-data-jpa 虽然Spr ...