首页 > 其他分享 >Cookie Store API

Cookie Store API

时间:2024-04-28 19:33:50浏览次数:23  
标签:const option API cookie cookieStore querySelector Cookie document Store

  • 无法获取 HttpOnly 标记的 cookie
  • expires 为 null 时,表示会话结束时过期
  • domain 只有在 domain 为当前域名的主域名时才显示(不包含子域名),否则为 null.
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0" />
    <title>Cookie Store API</title>
  </head>
  <body>
    <strong>获取和设置 cookie 的信息</strong>
    <hr />
    <button type="button" class="btn-add">增</button>
    <button type="button" class="btn-del">删</button>
    <button type="button" class="btn-update">改</button>
    <button type="button" class="btn-get">查</button>
    <button type="button" class="btn-clear">清空</button>

    <script>
      // Cookie Store API 获取和设置 cookie 的信息
      // 无法获取 HttpOnly 标记的 cookie
      // expires 为 null 时,表示会话结束时过期
      // domain 只有在 domain 为当前域名的主域名时才显示(不包含子域名),否则为 null.

      const cookieListUl = document.querySelector('.cookie-list');
      const btnAdd = document.querySelector('.btn-add');
      const btnDel = document.querySelector('.btn-del');
      const btnUpdate = document.querySelector('.btn-update');
      const btnGet = document.querySelector('.btn-get');
      const btnClear = document.querySelector('.btn-clear');

      /** @type {CookieStore} */
      const cookieStore = globalThis.cookieStore;

      // 监听 cookie 的变化
      cookieStore.addEventListener('change', async (e) => {
        /* changed、deleted */
        console.log('cookie change => ', e);
        const cookies = await cookieStore.getAll();
        console.log('cookies => ', cookies);
      });

      btnAdd.addEventListener('click', () => addCookie({ name: 'a', value: '1' }));
      btnDel.addEventListener('click', () => delCookie({ name: 'a' }));
      btnGet.addEventListener('click', () => getCookie({ name: 'a' }));
      btnUpdate.addEventListener('click', () => updateCookie({ name: 'a', value: '2' }));
      btnClear.addEventListener('click', () => clearAllCookie());

      // 新增 cookie
      function addCookie(option) {
        cookieStore.set(option);
      }
      // 删除 cookie
      function delCookie(option) {
        cookieStore.delete(option);
      }
      // 更新 cookie
      function updateCookie(option) {
        addCookie(option);
      }
      // 获取 cookie
      function getCookie(option) {
        return cookieStore.get(option);
      }
      // 获取所有的 cookie
      function getAllCookie(option) {
        return cookieStore.getAll(option);
      }
      // 清除所有的 cookie
      async function clearAllCookie() {
        const cookies = await cookieStore.getAll();
        cookies.forEach((cookie) => delCookie(cookie.name));
      }
    </script>
  </body>
</html>

标签:const,option,API,cookie,cookieStore,querySelector,Cookie,document,Store
From: https://www.cnblogs.com/chlai/p/18164367

相关文章

  • OPENAI API应用文档
    相关链接:https://platform.openai.com/docs/introduction1、简介OpenAIAPI几乎可以应用于任何任务。我们提供一系列具有不同功能和价位的模型,并且能够微调定制模型。api-reference:https://platform.openai.com/docs/api-reference/introduction1.1、关键概念1.1.1、Textg......
  • cookie,session,token的区别
    cookie,session,token它们本质上不是同一个东西。但是都跟维持状态信息有关系。什么是状态信息呢?我来用一个登录来个大家讲解。如果我们登录以后,希望后续的所有的页面都维持登录的状态,那我们就需要用刚刚讲到的cookie,session,token来进行实现。那么如果没有使用上面的任何一种......
  • 开源相机管理库Aravis例程学习(五)——camera-api
    目录简介例程代码函数说明arv_camera_get_regionarv_camera_get_pixel_format_as_stringarv_camera_get_pixel_formatARV_PIXEL_FORMAT_BIT_PER_PIXEL简介本文针对官方例程中的:03-camera-api做简单的讲解。并介绍其中调用的arv_camera_get_region,arv_camera_get_pixel_format_as......
  • idea插件之apifox自动化测试
    /***测试apifox插件自动化读取*/@RestController@RequestMapping("/api")publicclassSwaggerApiFoxController{/***这是一个测试方法*@return*/@RequestMapping("/test")publicStringtest(){return"test";}}1......
  • Spring Boot 编写 API 的 10条最佳实践
    10个最佳实践,让您像专业人士一样编写SpringBootAPI,并结合编码示例和解释:1.RESTfulAPI设计原则:清晰一致的资源命名:使用准确反映API管理的资源的名词(例如,/products、/users)。@GetMapping("/products/{id}")publicResponseEntity<Product>getProductById(@PathVaria......
  • blender python api 将指定的顶点组(water)转换为颜色属性water_colors
    1.选中物体,进入权重绘制模式2.代码:importbpy#获取当前活动的物体obj=bpy.context.object#确保物体是网格类型ifobj.type!='MESH':print("当前激活的对象不是网格类型。")#exit()#使用exit()来提前退出脚本#获取名为“water”的顶点组vertex_gro......
  • blender python api 获取所有顶点组并将各自的顶点组转换为对应的颜色属性
    1.选中物体,进入权重绘制模式2.代码importbpy#获取当前活动的物体obj=bpy.context.object#确保物体是网格类型ifobj.type!='MESH':print("当前激活的对象不是网格类型。")#exit()#遍历所有顶点组forvg_nameinobj.vertex_groups.keys():#获......
  • 大小写相关API(tolower, toupper, islower, isupper)
    1.定义位于头文件中1.1tolowertolower函数用于将字符转换为小写形式,如果参数ch是大写字母,则返回对应的小写字母;否则返回原始字符。inttolower(intch);1.2touppertoupper函数用于将字符转换为大写形式,如果参数ch是小写字母,则返回对应的大写字母;否则返回原始......
  • Go的Gin框架中使用Cgo调用Python的CApi调用Python代码
    在Gin项目中定义Services用以唤起Python,值得注意的是需要在引入Python.h前使用#cgo声明依赖库packagecpython//#cgoCFLAGS:-I"Q:/Sill-/anaconda/envs/poetry/include"//#cgoLDFLAGS:-L"Q:/Sill-/anaconda/envs/poetry/libs"-lpython311//#include<Python.h>imp......
  • dremio 25.0 KVStore 升级简单说明
    dremio25.0开始对于数据源的存储支持加密了,所以升级上稍有不同,官方给出的操作流程如下参考处理//对于已经运行的,应该先stop,然后进行应用包的替换dremiostop//执行dremio-admin的upgradedremio-adminupgrade//启动dremiostart//停止drem......