Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 813|回复: 0

[默认分类] JS设置cookie,删除cookie

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-13 18:36:32 | 显示全部楼层 |阅读模式

    js设置cookie有很多种方法。
    第一种:(这个是w3c官网的代码)

    1. <script>
    2. //设置cookie
    3. function setCookie(cname, cvalue, exdays) {
    4.     var d = new Date();
    5.     d.setTime(d.getTime() + (exdays*24*60*60*1000));
    6.     var expires = "expires="+d.toUTCString();
    7.     document.cookie = cname + "=" + cvalue + "; " + expires;
    8. }
    9. //获取cookie
    10. function getCookie(cname) {
    11.     var name = cname + "=";
    12.     var ca = document.cookie.split(";");
    13.     for(var i=0; i<ca.length; i++) {
    14.         var c = ca[i];
    15.         while (c.charAt(0)==" ") c = c.substring(1);
    16.         if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
    17.     }
    18.     return "";
    19. }
    20. //清除cookie  
    21. function clearCookie(name) {  
    22.     setCookie(name, "", -1);  
    23. }  
    24. function checkCookie() {
    25.     var user = getCookie("username");
    26.     if (user != "") {
    27.         alert("Welcome again " + user);
    28.     } else {
    29.         user = prompt("Please enter your name:", "");
    30.         if (user != "" && user != null) {
    31.             setCookie("username", user, 365);
    32.         }
    33.     }
    34. }
    35. checkCookie();
    36. </script>
    复制代码

    第二种:

    1. <script>
    2. //JS操作cookies方法!
    3. //写cookies
    4. function setCookie(c_name, value, expiredays){
    5.     var exdate=new Date();
    6.     exdate.setDate(exdate.getDate() + expiredays);
    7.     document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
    8.   }
    9. //读取cookies
    10. function getCookie(name)
    11. {
    12.     var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    13.     if(arr=document.cookie.match(reg))
    14.         return (arr[2]);
    15.     else
    16.         return null;
    17. }
    18. //删除cookies
    19. function delCookie(name)
    20. {
    21.     var exp = new Date();
    22.     exp.setTime(exp.getTime() - 1);
    23.     var cval=getCookie(name);
    24.     if(cval!=null)
    25.         document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    26. }
    27. //使用示例
    28. setCookie("username","Darren",30)
    29. alert(getCookie("username"));
    30. </script>
    复制代码

    第三个例子

    1. <html>
    2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    3.     <head>
    4.         <script language="JavaScript" type="text/javascript">
    5.             
    6.             function addCookie(objName, objValue, objHours){//添加cookie
    7.                 var str = objName + "=" + escape(objValue);
    8.                 if (objHours > 0) {//为0时不设定过期时间,浏览器关闭时cookie自动消失
    9.                     var date = new Date();
    10.                     var ms = objHours * 3600 * 1000;
    11.                     date.setTime(date.getTime() + ms);
    12.                     str += "; expires=" + date.toGMTString();
    13.                 }
    14.                 document.cookie = str;
    15.                 alert("添加cookie成功");
    16.             }
    17.             
    18.             function getCookie(objName){//获取指定名称的cookie的值
    19.                 var arrStr = document.cookie.split("; ");
    20.                 for (var i = 0; i < arrStr.length; i++) {
    21.                     var temp = arrStr[i].split("=");
    22.                     if (temp[0] == objName)
    23.                         return unescape(temp[1]);
    24.                 }
    25.             }
    26.             
    27.             function delCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
    28.                 var date = new Date();
    29.                 date.setTime(date.getTime() - 10000);
    30.                 document.cookie = name + "=a; expires=" + date.toGMTString();
    31.             }
    32.             
    33.             function allCookie(){//读取所有保存的cookie字符串
    34.                 var str = document.cookie;
    35.                 if (str == "") {
    36.                     str = "没有保存任何cookie";
    37.                 }
    38.                 alert(str);
    39.             }
    40.             
    41.             function $(m, n){
    42.                 return document.forms[m].elements[n].value;
    43.             }
    44.             
    45.             function add_(){
    46.                 var cookie_name = $("myform", "cookie_name");
    47.                 var cookie_value = $("myform", "cookie_value");
    48.                 var cookie_expireHours = $("myform", "cookie_expiresHours");
    49.                 addCookie(cookie_name, cookie_value, cookie_expireHours);
    50.             }
    51.             
    52.             function get_(){
    53.                 var cookie_name = $("myform", "cookie_name");
    54.                 var cookie_value = getCookie(cookie_name);
    55.                 alert(cookie_value);
    56.             }
    57.             
    58.             function del_(){
    59.                 var cookie_name = $("myform", "cookie_name");
    60.                 delCookie(cookie_name);
    61.                 alert("删除成功");
    62.             }
    63.         </script>
    64.     </head>
    65.     <body>
    66.         <form name="myform">
    67.             <div>
    68.                 <label for="cookie_name">
    69.                     名称
    70.                 </label>
    71.                 <input type="text" name="cookie_name" />
    72.             </div>
    73.             <div>
    74.                 <label for="cookie_value">
    75.                 值
    76.                 </lable>
    77.                 <input type="text" name="cookie_value" />
    78.             </div>
    79.             <div>
    80.                 <label for="cookie_expireHours">
    81.                 多少个小时过期
    82.                 </lable>
    83.                 <input type="text" name="cookie_expiresHours" />
    84.             </div>
    85.             <div>
    86.                 <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_()"/>
    87.             </div>
    88.         </form>
    89. </body>
    90. </html>
    复制代码

    注意:
    chrome浏览器在本地获取不到cookie。必须在服务器上才可以。如果是本地的话,你可以放到local的www目录下面。
    Google Chrome只支持在线网站的cookie的读写操作,对本地HTML的cookie操作是禁止的。所以下面的代码如果你写在一个本地的html文件中,将弹出的对话框内容为空。
    document.cookie = "Test=cooo";
    alert(document.cookie);
    如果这个页面是在线网站的内容,则会正常显示cookie内容Test=cooo等等。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-24 21:32 , Processed in 0.377080 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表