精华内容
下载资源
问答
  • localstorage.setitem用法
    2022-04-12 15:35:53
    1> sessionStorage是什么
       对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,
    它包含两种:
             localStorage(长期存储):与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在
             &&
             sessionStorage(临时存储):为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载
    
    2> 使用方法
       sessionStorage 和 localStorage 的用法基本一致,引用类型的值要转换成JSON,所以这里就只列举localStorage
    
    
    
    1 保存
    
    const info = { name:'hou', age: 24, id: '001' }
    
    const str="haha"
    
    localStorage.setItem('hou', JSON.stringify(info))
    
    localStorage.setItem('zheng', str)
    
    
    2 获取
    var data1 = JSON.parse(localStorage.getItem('hou'))
    var data2 = localStorage.getItem('zheng')
    
    3 删除
    //删除某个
    localStorage.removeItem('hou')
    //删除所有
    localStorage.clear()
    
    4 监听
    /**Storage 发生变化(增加、更新、删除)时的 触发,同一个页面发生的改变不会触发,只会监听同一域名下其他页面改变 Storage */
    
    window.addEventListener('storage', function (e) {
    console.log('key', e.key); console.log('oldValue', e.oldValue);
    console.log('newValue', e.newValue); console.log('url', e.url);
    })
    

    更多相关内容
  • 做UI自动化,某些场景我们需要使用JavaScript的localStorage.setItem()写入token的值。 格式为localStorage.setItem(key,value),value的类型为字符串。 但是如果这样写: token = "eyJ0eXAiOiJKc29uV2ViVG9rZW4...

    做UI自动化,某些场景我们需要使用JavaScript的localStorage.setItem()写入token的值。

    格式为localStorage.setItem(key,value),value的类型为字符串。

    但是如果这样写:

    token = "eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9"	# 原token太长了,这里只截取部分作为举例,方便观看理解
    print(token)	# 方便观看理解,打印出来
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", "'+token+'")'
    print(js)
    self.web.driver.execute_script(js)
    

    打印token和js出来你会发现:
    在这里插入图片描述
    这个token是不带双引号的,所以就会导致json格式报错:

    写入的值没有双引号在这里插入图片描述
    而正常登录后,本地存储里的token值应该是这样的:
    在这里插入图片描述
    因此,我们需要传入的值为:
    “eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9”
    才是正确的。

    所以就需要添加转义字符:

    token = "\"eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9\""
    print(token)
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", "'+token+'")'
    print(js)
    self.web.driver.execute_script(js)
    

    看似没问题了,其实什么都没有写入:
    在这里插入图片描述
    因为,拼接之后为:
    在这里插入图片描述
    或者去掉代码中value参数拼接时的双引号:

    token = "\"eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9\""
    print(token)
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", '+token+')' # 去掉双引号拼接
    print(js)
    self.web.driver.execute_script(js)
    

    结果仍然不对:
    在这里插入图片描述
    在这里插入图片描述
    这我TM就有点暴躁了😤。

    但,如果尝试写入单引号,是可以成功的:

    token = "'eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9'"
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", "'+token+'")'
    

    在这里插入图片描述
    这就说明,肯定有某种方法也能将双引号写入。😟😦😮😃saw the dawn.

    所以,我们需要把转义符原模原样的传入,也就是转义之后才为\"。

    那么就需要分别转义\和":

    token = "\\\"eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9\\\""
    print(token)
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", "'+token+'")'
    print(js)
    self.web.driver.execute_script(js)
    

    如此,打印出来是这样的:
    在这里插入图片描述
    实际本地存储中是这样的:
    在这里插入图片描述
    😃就可以正确传入token了。

    还有一种格式处理的方法是,将字符串放入列表中,再将其取出:

    token = ['"eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9"']
    token = json.dumps(token[0])
    print(token)
    js = 'window.localStorage.setItem("accounting-ui_TOKEN", '+token+')'
    print(js)
    self.web.driver.execute_script(js)
    

    打印出来和本地写入的也是我们想要的结果:
    在这里插入图片描述
    在这里插入图片描述
    需要注意的是,从列表中取出来之后,使用json.dumps()将其转换为json字符串。

    python没有前端json.stringify()的方法,这个方法会默认转换成带双引号的json字符串,可惜不能直接使用。

    这种类似于“放进去再拿出来”的骚操作在python还有很多,某些情况下很管用,可能这也是让我喜欢python拒绝java的原因吧😄

    例如,给一个列表去重:list(set(list)),利用集合的特性,把类型转过去再转回来。

    说句题外话,之前搜遍全网也没有找到一个有用的回答,只在外网找到一个关于怎样去除双引号的求助帖。

    关于这个问题,网上搜索结果全是互相抄的无用文章并打上[原创]的无耻之徒,可能只是为了增加访问量?😆

    回到正题,这样做有什么用呢?在做自动化测试的时候,可以绕过登录页面直接登录系统,还可以避免花里胡哨的各种验证码。什么滑块,拼图,算数,变形模糊的数字字母,成语填空,选出哪些是什么物体…也不必费尽力气搞什么训练模型,因为你的目的仅仅是为了快捷登录并执行业务测试。当然,前提是你有正确的token。

    至于token、cookie等几种常见的绕过登录进入系统的方法,自行搜索吧,比较简单,不做赘述。无耻之徒的文章很多,很轻易就能找到一篇😏

    展开全文
  • window.localStorage.setItem总结

    千次阅读 2021-08-04 16:34:41
    window.localStorage.setItem(key,value);//设置指定key的数据(JSON格式) window.localStorage.getItem(key);//获取指定key的数据 window.localStorage.removeItem(key);//删除指定key的数据 window....
    window.localStorage.setItem(key,value);//设置指定key的数据(JSON格式)
     
    window.localStorage.getItem(key);//获取指定key的数据
    window.localStorage.removeItem(key);//删除指定key的数据
     
    window.localStorage.clear();//清空所有的存储数据
     
     
     
    window.sessionStorage.setItem(key,value);
     
    window.sessionStorage.getItem(key);
     
    window.sessionStorage.removeItem(key);
     
    window.sessionStorage.clear();
    

    HTML5种的web storage包含两种存储方式:localStorage和sessionStorage,这两种方式存储的数据不会自动发给服务器,仅仅是本地保存,有大小限制。

    localStorage

    是持久化的本地保存,只要你找不到其所在地没有主动删掉,就会一直存在。就像一些缓存,都把APP删了还有。

    sessionStorage

    是会话级别的本地保存,比如一个页面关闭的时候该页面设置的sessionStorage数据会自动消失,在不同浏览器窗口不会共享的,即使是同一个浏览器的同一个页面。根Java里面的会话有点类似的。
    使用localstorage.setItem(name,value)存储JSON对象时会发现浏览器存储的内容为[object,object],并不是我们想要的内容,这是因为我们在存储的时候没有进行类型转换,因此我们在使用localstorage.setItem()进行对象存储之前需要使用JSON.stringify(object)进行类型转换,转换成JSON字符串后进行存储就会是我们想要的样子了{‘xxx’:‘11111’}

    HTML5 提供了两种在客户端存储数据的新方法:

    localStorage - 没有时间限制的数据存储


    sessionStorage - 针对一个 session 的数据存储sessionStorage 方法
    sessionStorage 方法针对一个 session 进行数据存储。在关闭窗口或标签页之后,数据会被删除


    sessionStorage特别适用于单页面应用(angular),可以方便在各个界面之间传值。

    方法如下:
     string sessionStorage.key(int index) :返回当前 sessionStorage 对象的第index序号的key名称。若没有返回null。

     string sessionStorage.getItem(string key) :返回键名(key)对应的值(value)。若没有返回null。

     void sessionStorage.setItem(string key, string value) :该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。

     void sessionStorage.removeItem(string key) :将指定的键名(key)从 sessionStorage 对象中移除。

     void sessionStorage.clear() :清除 sessionStorage 对象所有的项。

    可以看到sessionStorage存储的数据只能是字符串,对于常用的对象和数组是存储不了的,因此我们可以通过JSON对象提供的parse和stringify将其他数据类型

    转化成字符串,再存储到storage中就可以了。

    代码如下:

    存入数据:

    使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串
    this.queryParams={name:'lisi',id:'222'};
    sessionStorage.setItem('queryParam',JSON.stringify(this.queryParams))
    读取数据

    读取之后要将JSON字符串转换成为JSON对象

    this.queryParams = JSON.parse(sessionStorage.getItem('queryParam'));
    数组的操作同样是用上述方法。
    题外话:

    localStorage的用法和sessionStorage是一样的,只不过localStorage的存储是永久性的,需要手动删除。

    参考资料

    window.localStorage.setItem的理解与使用_taylorzun的博客-CSDN博客_window.localstorage.setitemhttps://blog.csdn.net/zmkyf1993/article/details/78065712?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base

    展开全文
  • window.localStorage.setItem的理解与使用

    千次阅读 2021-05-18 15:39:29
    最近接触的一个小项目中频繁看到一个新的面孔: changeTheme () { ... window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(openKeys)) dispatch({ type: 'app/handleNavOpenKeys',

    最近接触的一个小项目中频繁看到一个新的面孔:

     changeTheme () {
          dispatch({ type: 'app/switchTheme' })
        },
        changeOpenKeys (openKeys) {
          window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(openKeys))
          dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } })
        },
      }
    

    虽然字面上理解了window.localStorage.setItem的意思,但是对其用法不甚理解。所以找了一些文档,将自己的理解整理下来:

    针对上面的这个部分,这段代码可以缓存当前页面的停留的子页面和展开的数据,当切换出去该页面再回来的时候,展示的仍然是离开时的页面和数据。

    HTML5种的web storage包含两种存储方式:localStorage和sessionStorage,这两种方式存储的数据不会自动发给服务器,仅仅是本地保存,有大小限制。

    localStorage是持久化的本地保存,只要你找不到其所在地没有主动删掉,就会一直存在。就像一些缓存,都把APP删了还有。

    sessionStorage是会话级别的本地保存,比如一个页面关闭的时候该页面设置的sessionStorage数据会自动消失,在不同浏览器窗口不会共享的,即使是同一个浏览器的同一个页面。根Java里面的会话有点类似的。

    window.localStorage.setItem(key,value);//设置指定key的数据(JSON格式) 
    window.localStorage.getItem(key);//获取指定key的数据
    window.localStorage.removeItem(key);//删除指定key的数据
     window.localStorage.clear();//清空所有的存储数据
      
    window.sessionStorage.setItem(key,value);
     window.sessionStorage.getItem(key);
     window.sessionStorage.removeItem(key);
     window.sessionStorage.clear();
    

    应该还有更深的理解。待续。

    -----------------------------------------------------------continue--------------------------------------------------------------------------------

    localStorage其他注意事项
    一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式

    这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串

    示例:

    if(!window.localStorage){
        alert("浏览器支持localstorage");
    }else{
        var storage=window.localStorage;
        var data={
            name:'taytay',
            sex:'woman',
            hobby:'program'
        };
        var d=JSON.stringify(data);
        storage.setItem("data",d);
        console.log(storage.data);
    }
    

    读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法

    var data={
        name:'taytay',
        sex:'woman',
        hobby:'program'
    };
    var d=JSON.stringify(data);
    window.localStorage.setItem("data",d);
    //将JSON字符串转换成为JSON对象输出
    var json=storage.getItem("data");
    var jsonObj=JSON.parse(json);
    console.log(typeof jsonObj);
    

    打印出来是Object对象

    另外还有一点要注意的是,其他类型读取出来也要进行转换…

    参考链接: https://www.cnblogs.com/st-leslie/p/5617130.html
    https://www.cnblogs.com/wdlhao/p/4494624.html
    ————————————————
    版权声明:本文为CSDN博主「taylorzun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/taylorzun/article/details/81112392

    展开全文
  • 我是参考这个做出来的,我主要是说,这些代码写在那些部分。 我只是以字符串为例子: 在这里插入图片描述 注意看24,25行,这是件字符串保存起来,...我是写在方法里面的,只要是注意一下位置,几乎没有什么错误。 ...
  • localStorage.setItem()使用

    千次阅读 2019-11-18 18:29:51
    vue中 localStorage.setItem()使用 什么是localStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),...
  • window.localStorage.setItem使用

    千次阅读 2020-03-03 16:48:25
    最近接触的一个小项目中频繁看到一个新的面孔: changeTheme () { dispatch({ type: 'app/switchTheme' }) }, ... window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(ope...
  • localStorage 用于长久保存整个...localStorage.setItem("user",JSON.stringify(res.data.user)); 然后系统跳转页面 读取用户信息: var userString = localStorage.getItem("user"); 点击退出登录后,删除loca..
  • sessionStorage和localStorage Web Storage实际上由两部分组成:sessionStorage与localStorage。 sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束...
  • 使用localstorage.setItem()存储对象

    千次阅读 2020-08-04 22:26:57
    使用localstorage.setItem(name,value)存储JSON对象时会发现浏览器存储的内容为[object,object],并不是我们想要的内容,这是因为我们在存储的时候没有进行类型转换,因此我们在使用localstorage.setItem()进行对象...
  • 登录成功后——保存token值-window.localStorage.setItem(‘token’, body.token) & 查看token值-sessionStorage.getItem(‘mytoken’) 添加状态:username(账号) 和 password(密码) 使用受控组件方式...
  • 解决本地存储的值改变的时候js不能实时监听到的问题 问题描述:我们在js里面获取了某一个localstorage的... 我们可以重写localStoragesetItem方法,当调用setItem方法设置新值的时候,会new Event('setItemEvent'...
  • localStorage.name=“maoguiyou”和localStorage.setItem("name","maoguiyou")都是和h5本地存储的方法,第一个就不用说了,直接把值赋给name字段,主要是说说第二个,第二个也是里面有两个参数,第一个是字段名,第...
  • localStorage是html5新增的一个本地存储...vue中使用方法: 1、新建一个store.js文件 localStorage只能存储字符串,非字符串的数据在存储之前会被转换成字符串。在存储一些复杂数据类型时可能有些麻烦,下面方法是先使
  • WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,...Web Storage实际上由两部分组成:sessionStorage与localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这
  • html5的一个非常cool的功能,就是web ...1、localstorage localstorage使用比较简单,方法有: 复制代码代码如下:localStorage.setItem(key,value);//保存数据localStorage.getItem(key);//读取数据localStorage.re
  • 火狐浏览器无法重写localStoragesetItem 最近在公司维护项目时,遇到一个问题,如下代码所示(已经简化): /** 主要实现对setItem的重写,实现对localStorage数据变动的监听 */ var signSetItem = localStorage....
  • localStorage.getItem

    万次阅读 2021-03-09 18:52:08
    1:localStorage.getItem WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,...2: localStorage方法localStorage.getItem(key):获取指定key本地存...
  • if (window.localStorage) { initJs(); initCss("css", "/gfdzp201508257998/Turntable/Style/css_whir.css"); } else { addFile("/gfdzp201508257998/Turntable/Script/jquery-1.8.3.min.js", "js"); add...
  • 借鉴...往浏览器里面储存数据 localStorage.setItem(‘todos’, JSON.stringify(value)) 读取 const list = JSON.parse(localStorage.getItem(‘todos’)) || []
  • mui plus.storage.setItem使用注意事项

    千次阅读 2018-09-02 12:16:27
    以前页面传参都是用plus.storage.setItem的(包括数值型),没发现问题, 今天把经纬度作为参数保存时,竟然存不进去, 经过反复测试,最终发现,需要把经纬度作为字符串才能保存成功。 正确格式如下:plus....
  • 我存储的object数据类型经过localStorage.setItem后数据类型已经变为了string,而wx.setstoragesync则不会去改变你缓存的数据类型,所以如果你也遇到了类似问题可以进行以下操作 解决方法: 在存储数据时使用JSON....
  • 在前端开发项目过程中,经常会遇到处理数据的事情,尤其是数据存取和清除,从一个页面...今天给大家介绍下两种方法:Storage.removeItem()和localStorage.clear()。Storage.removeItem()传递键名后,接口的removeIte...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,258
精华内容 6,903
关键字:

localstorage.setitem用法