什么是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 中。当访问者再次访问网站时,他们就会收到欢迎词。

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

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())
}

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

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

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

function getCookie(c_name)
{
if (document.cookie.length>0){c_start=document.cookie.indexOf(c_name + "=")if (c_start!=-1){ c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start)if (c_end==-1) c_end=document.cookie.lengthreturn unescape(document.cookie.substring(c_start,c_end))} }
return ""
}

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

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

function checkCookie()
{username=getCookie('username')
if (username!=null && username!=""){alert('Welcome again '+username+'!')}
else {username=prompt('Please enter your name:',"")if (username!=null && username!=""){setCookie('username',username,365)}}
}

这是所有的代码:

<html>
<head>
<script type="text/javascript">
function getCookie(c_name)
{if (document.cookie.length>0){c_start=document.cookie.indexOf(c_name + "=")if (c_start!=-1){ c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start)if (c_end==-1) c_end=document.cookie.lengthreturn unescape(document.cookie.substring(c_start,c_end))} }
return ""
}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())
}function checkCookie()
{username=getCookie('username')
if (username!=null && username!=""){alert('Welcome again '+username+'!')}
else {username=prompt('Please enter your name:',"")if (username!=null && username!=""){setCookie('username',username,365)}}
}
</script>
</head><body onLoad="checkCookie()">
</body>
</html>

27. JavaScript Cookies相关推荐

  1. javascript cookies操作

    <script> //写cookies函数 function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 {     var Days = ...

  2. javascript cookies 存、取、删除实例【转】

    <script>//写cookies函数 作者:翟振凯 function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 {var Days = ...

  3. 前端面试整理JavaScript

    1.eval是做什么的? 它的功能是把对应的字符串解析成JS代码并运行: 应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行). 2. null,undefined 的区别? ...

  4. CSS、JavaScript、PHP和Python编程合二为一

    CSS, JavaScript,PHP And Python Programming All in One Course 在一门课程中学习Javascript.PHP和Python编程语言的CSS 你 ...

  5. 083_JavaScript Cookies

    1. 什么是cookie? 1.1. Cookie 是在您的计算机上存储在小的文本文件中的数据. 1.2. 当web服务器向浏览器发送网页后, 连接被关闭, 服务器会忘记用户的一切. 1.3. Coo ...

  6. JavaScript学习备忘

    1.您只能在 HTML 输出流中使用 document.write 如果在文档已加载后使用它(比如在函数中),会覆盖整个文档 2.数组 : [40, 100, 1, 5, 25, 10] <== ...

  7. javascript玩转ElasticSearch(一)

    javascript玩转ElasticSearch(一) 前言 开始 准备工作 一 查询 二 创建 1 直接插入数据 2 先建立mapping映射,再插入数据 2.1 查询mapping 2.2 设置 ...

  8. JavaScript 高级

    JavaScript 高级 JavaScript 浏览器检测 浏览器检测 本教程中几乎所有的代码均可在任何支持 JavaScript 的浏览器中运行.不过个别的代码无法运行于特定的浏览器,特别是老式的 ...

  9. JavaScript的1000+篇文章总结

    JavaScript的1000+篇文章总结 本文收集和总结了有关JavaScript的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.c ...

  10. 简单粗暴的JavaScript学习教程,前端入门的不二之选!

    JavaScript 是网景(Netscape)公司开发的一种基于客户端浏览器.面向(基于)对象.事件驱动式的网页脚本语言.JavaScript语言的前身叫作Livescript. JavaScrip ...

最新文章

  1. php的构造函数解析
  2. List、Set、Map的区别
  3. 高级图像去雾算法的快速实现
  4. Quartz总结(一):Quartz集成Spring的2个方法
  5. Plugin [id: 'org.jetbrains.kotlin.jvm'] was not found in any of the following sources:
  6. 隐藏a标签seo_让黑帽都惊了,远离百度惩处的seo技术
  7. Java 各种日期/时间 对象转Long时间戳
  8. 解决easy ui 1.4datebox控件不能清空的问题
  9. 有点理解Google为什么要退出中国市场了
  10. 联合密度函数求期望_已知概率密度函数怎么求它的数学期望和方差
  11. input()函数的简单介绍
  12. 跳舞毯 [HDU2154]
  13. win11运行gnuplot报错:This application failed to start because no Ot platform plugin could be initialized
  14. 极域课堂分发文件与一键开关机教程
  15. 【web实战-业务逻辑】评论点赞逻辑
  16. 单元测试中使用Mock对象
  17. Python学习:对象引用、可变性和垃圾回收
  18. iphone开发起步
  19. IT专业人士:Windows 7部署的攻坚兵
  20. menuconfig 图形化配置

热门文章

  1. 忙了1天的qte-arm环境的搭建
  2. android学习心得之Activity
  3. 收集一些非常好用常用的用户函数。分享给大家参考。
  4. 几个北大和南开学霸公众号,值得学习
  5. 你使用过哪些数据分析的方法?
  6. 干货 | 万字长文带你复习线性代数!
  7. Rstudio 1.2 新功能介绍
  8. 各种编程语言介绍,应用,性能等
  9. Linux之vim常用扩展操作
  10. tomcat启动报错:java.lang.NoClassDefFoundError