JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie.
假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

JS设置cookie


假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:

  1. document.cookie="name="+username;

JS读取cookie


假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:

  1. var username=document.cookie.split(";")[0].split("=")[1];
  2. //JS操作cookies方法!
  3. //写cookies
  4. function setCookie(name,value)
  5. {
  6. var Days = 30;
  7. var exp = new Date();
  8. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  9. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  10. }

读取cookies


  1. function getCookie(name)
  2. {
  3. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  4. if(arr=document.cookie.match(reg))
  5. return unescape(arr[2]);
  6. else
  7. return null;
  8. }

删除cookies


  1. function delCookie(name)
  2. {
  3. var exp = new Date();
  4. exp.setTime(exp.getTime() - 1);
  5. var cval=getCookie(name);
  6. if(cval!=null)
  7. document.cookie= name + "="+cval+";expires="+exp.toGMTString();
  8. }
  9. //使用示例
  10. setCookie("name","hayden");
  11. alert(getCookie("name"));
  12. //如果需要设定自定义过期时间
  13. //那么把上面的setCookie 函数换成下面两个函数就ok;
  14. //程序代码
  15. function setCookie(name,value,time)
  16. {
  17. var strsec = getsec(time);
  18. var exp = new Date();
  19. exp.setTime(exp.getTime() + strsec*1);
  20. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  21. }
  22. function getsec(str)
  23. {
  24. alert(str);
  25. var str1=str.substring(1,str.length)*1;
  26. var str2=str.substring(0,1);
  27. if (str2=="s")
  28. {
  29. return str1*1000;
  30. }
  31. else if (str2=="h")
  32. {
  33. return str1*60*60*1000;
  34. }
  35. else if (str2=="d")
  36. {
  37. return str1*24*60*60*1000;
  38. }
  39. }
  40. //这是有设定过期时间的使用示例:
  41. //s20是代表20秒
  42. //h是指小时,如12小时则是:h12
  43. //d是天数,30天则:d30
  44. setCookie("name","hayden","s20");

原文链接

JS设置cookie、读取cookie、删除cookie(转载)的更多相关文章

  1. js设置、读取、删除cookie

    设置cookie: function setCookie(oJson , time){ var data = new Date( new Date().getTime() + time*24*60*6 ...

  2. Js添加、读取、删除cookie,判断cookie是否有效,指定domain域下主路径path下设置cookie,设置expires过期时间

    有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!=”这样的写法. 正确方法是:判断是否存在名为username3的cookie,使用do ...

  3. vue.js设置、获取、删除cookie

    项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...

  4. 设置、读取、删除cookie

    刚才用虚拟机当服务器,开了两个服务(端口号不同),发现同样的cookie:在别的网站下面没有发现该cookie.说明cookie只是对应相应的网站的(自己得出的结论) ---------------- ...

  5. js设置,获取,删除Cookie

    //JS操作cookies方法! //写cookies function setCookie(name,value) {     var Days = 30;     var exp = new Da ...

  6. JS读写Cookie(设置、读取、删除)

    JS读写Cookie(设置.读取.删除) Cookie是客户端存放数据的一种方式,可用来做状态保持. 1.设置Cookie: a.无过期时间:(若不设置过期时间,默认为会话级Cookie,浏览器关闭就 ...

  7. 什么是cookie?cookie的使用(设置,读取,删除)

    1.什么是cookie?     页面用来保存信息            比如:自动登录,记住用户名     cookie的特性           同一个网站所有页面共用一套cookie       ...

  8. JS封装cookie操作函数实例(设置、读取、删除)

    本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  9. JS 浏览器cookie的设置,读取,删除

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...

  10. JS学习笔记 - cookie设置、读取、删除

    <script> // 设置cookie function setCookie(name, value, iDay) { var oDate = new Date(); oDate.set ...

随机推荐

  1. 图像阈值化-threshold、adaptivethreshold

    在图像处理中阈值化操作,从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体).这样的图像分割方法是基于图像中物体与背景之间的灰度差异,而且此分割属于像素级的分割.open ...

  2. [性能调优]如何通过读PeopleSoft Trace文件来调优

    理解PeopleSoft Trace文件对于解决性能问题是绝对有必要的.你可能面临一个问题,用户抱怨性能较慢,而OEM并没有补货SQL,你有2种方法选择:使用PeopleSoft trace检查或启用 ...

  3. SD从零开始47-50, 装运成本基础、控制、结算, 信用/风险管理概述

    [原创] SD从零开始47 装运成本基础 详细的装运成本处理Shipment Cost Processing in Detail 装运成本计算和装运成本结算可用于内向和外向交货: 装运成本记录在一张新 ...

  4. Linux nohup命令应用简介--让Linux的进程不受终端影响

    nohup命令应用简介--让Linux的进程不受终端影响 by:授客 QQ:1033553122   #开启ping进程 [root@localhost ~]# ping localhost & ...

  5. MySql 正则表达式简介及使用

    MySql正则表达式简介及使用 by:授客 QQ:1033553122 简介 正则表达式描述了一组字符串,该字符放置于REGEXP工具后面.作用是将一个正则表达式与一个文本串进行比较. 最简单的正则表 ...

  6. 安装google,多试试

    对于谷歌Chrome32位版本,使用如下链接: wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.de ...

  7. Visual Studio 2010详细安装过程

    Visual Studio 2010在目前看来,应该是使用得比较多的一款微软的软件开发工具集合了,因为它具有以下优点:(1)启动速度快:在相同环境下,相比于Visual Studio 2015来说,2 ...

  8. 使用Amanda ZRM备份远程MySQL数据库

    本文写道最后的时候,我才发现ZRM for MySQL的一个致命问题,就我目前的理解和测试来看,它恢复数据的时候是采取覆盖的方式,举个例子,假定某台数据库服务器上有两个数据库test1,test2,你 ...

  9. gitlab配置push -f 关闭

    默认路径是/var/opt/gitlab/git-data/repositories/组/库 修改conf 文件 [core] repositoryformatversion = 0 filemode ...

  10. 点击一个div ,把div里的某个参数的值,传到一个input里面

    ​​​