cookie 小妙招

1 篇文章 0 订阅

cookie 小妙招

注意注意: 调试cookie时 必须在 真实的服务器之下,自己本地的路径是没有cookie的
必须自己弄个本地服务器
前端开服务器:https://blog.csdn.net/weixin_41618917/article/details/113355152

先来一个小案例

使用背景:
如果用户是第一次进入项目,(此时cookie里没有值)
点击登录按钮判断当前cookie里是否存有手机号,如果没有手机号,就将手机号存入cookie,如果有手机号就直接登录。

在这里插入图片描述

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <style>
  </style>
</head>
<body>
    <div  >
        <span>手机号:</span>
        <input type="text" id="phone" placeholder="输入要存进cookie的手机号">
        <div onclick="copyText()">登录</div>
    </div>
    <script>
        function copyText(){
            const phone = this.getCookie('phone')
            if(phone){
                // 如果有 phone  这个cookie名 直接登录
                alert('登录成功')
            }else{
                let phoneValue= document.getElementById("phone").value
                this.setCookie('phone',phoneValue ,1)
                alert("已存进cookie")
            }
        }

        function setCookie(key, val, days){
            var d = new Date()
            d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000)
            var expires = d.toGMTString()
            document.cookie = key + "=" + val + ";expires=" + expires
        }

        function getCookie(name){
            var arr=document.cookie.split('; ') //多个cookie值是以; 分隔的,用split把cookie分割开并赋值给数组
            if(arr && arr.length > 0) {
                for(var i=0;i<arr[i].length;i++){ //历遍数组
                    var arr2=arr[i].split('=') //原来割好的数组是:user=simon,再用split('=')分割成:user simon 这样可以通过arr2[0] arr2[1]来分别获取user和simon
                    if(arr2[0]==name){ //如果数组的属性名等于传进来的name
                    return arr2[1] //就返回属性名对应的值
                    }
                }
            }
            return '' //没找到就返回空
        }
        
        function clearAllCookie() {
            var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
            if(keys) {
            for(var i = keys.length; i--;)
                document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString()
            }
        }

        window.onload = function(){
            // 为了有缓存先清一遍
            clearAllCookie()
        }
    </script>
</body>



方法合集:

清除所有cookie

      clearAllCookie() {
        var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
        if(keys) {
          for(var i = keys.length; i--;)
            document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString()
        }
      },

设置cookie

代码如下(示例):

      setCookie(key, val, days){
        var d = new Date()
        // 注意  时间不是按照天数  请修改
        d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000) 
        var expires = d.toGMTString()
        document.cookie = key + "=" + val + ";expires=" + expires
      },
// 调用
this.setCookie("cookie名",this.phonenumber ,1)   // this.phonenumber 是data里的值;1是 1天


得到 cookie

代码如下(示例):

      getCookie(name){
        var arr=document.cookie.split('; ') //多个cookie值是以; 分隔的,用split把cookie分割开并赋值给数组
        if(arr && arr.length > 0) {
          for(var i=0;i<arr[i].length;i++){ //历遍数组
            var arr2=arr[i].split('=') //原来割好的数组是:user=simon,再用split('=')分割成:user simon 这样可以通过arr2[0] arr2[1]来分别获取user和simon
            if(arr2[0]==name){ //如果数组的属性名等于传进来的name
              return arr2[1] //就返回属性名对应的值
            }
          }
        }
        return '' //没找到就返回空
      },

//调用
if (this.getCookie("cookie名")){
    // 如果这个  cookie名  存在时,
    
 }else{
    // 不存在时
}


设置cookie

代码如下(示例):

      setCookie(key, val, days){
        var d = new Date()
        // 注意  时间不是按照天数  请修改
        d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000) 
        var expires = d.toGMTString()
        document.cookie = key + "=" + val + ";expires=" + expires
      },
// 调用
this.setCookie("cookie名",this.phonenumber ,1)   // this.phonenumber 是data里的值;1是 1天

删除cookie (如果不需要点击去删除cookie,则不用调用该方法,cookie到时间会自动清除)

代码如下(示例):

     removeCookie(name){
        setCookie(name, 1, -1) //-1就是告诉系统已经过期,系统就会立刻去删除cookie
      },
// 调用
this.removeCookie("cookie名")   


╭(╯^╰)╮好饿,但是不想动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值