• javascript 操作cookies详解


    javascript 操作cookies详解

    这段操作cookies的方法我使用很久了,但是一直一来没遇到什么问题,今天在做一个在第一个页面保存了cookies,第二个页面获取或者第三个页面获取的功能中,发现了方法的局限性,比如,第一个页面路径为 http://xxxxx/cyb-car2016/h5OfficeWorker/index,第二个页面路径为 http://xxxxx/cyb-car2016/h5AlertController/index,其中除了域名是一样之外,还有一个命名空间不一样,而cookies是默认保存在当前页面下,所以在第一个页面中保存了cookies,因为保存的路径不同,第二个页面会获取不到cookies。 解决方法是,在保存cookies的时候,设置一下path,document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; ,其中path=/表示保存在域名路径下,全局可用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    /***********************操作cookies的方法***************************/
    //写cookies
    //这是有设定过期时间的使用示例:
    //s20是代表20秒
    //h是指小时,如12小时则是:h12
    //d是天数,30天则:d30
    function setCookie(name,value,time){
     var strsec = getsec(time);
     var exp = new Date();
     exp.setTime(exp.getTime() + strsec*1);
     document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
    }
     
    //读取cookies
    function getCookie(name){
     var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
     
     if(arr=document.cookie.match(reg))
      return unescape(arr[2]);
     else
      return false;
    }
     
    // 删除cookies
    function delCookie(name){
     var exp = new Date();
     exp.setTime(exp.getTime() - 1);
     var cval=getCookie(name);
     if(cval!=null)
     document.cookie= name + "="+cval+";expires="+exp.toGMTString()+";path=/";
    }
     
    function getsec(str){
     //alert(str);
     var str1=str.substring(1,str.length)*1;
     var str2=str.substring(0,1);
     if (str2=="s")
     {
      return str1*1000;
     }
     else if (str2=="h")
     {
      return str1*60*60*1000;
     }
     else if (str2=="d")
      {
       return str1*24*60*60*1000;
      }
    }
     
     
    //获取Cookie
    //var name = getCookie("name");
    //var phone = getCookie("phone");
    //
    //if(phone != ""){
    // $("input[name=phone]").val(phone);
    //}
    //if(name!="false"){
    // $("input[name=name]").val(name);
    //}
     
    /***********************操作cookies的方法***************************/

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 相关阅读:
    关于报错”已有打开的于此Command相关联的DataReader,必须首先将它关闭。“的问题
    Dockerjenkins环境搭建跟配置
    Python+selenium 【第十章】封装config类,读取配置文件,封装驱动类,适配windows/mac
    —— “欢迎来到我的小屋”
    Python+selenium 【第九章】封装excel类,封装test_data类 读取测试元素信息
    Linux搭建docker
    Python+selenium 【第十二章】封装日志类优化其他方法并添加日志(异常处理)
    【selenium】Python自动化面试题
    Dockerjenkins容器安装python并配置环境变量
    【优化框架】新增期望结果,断言为mysql情况下动态化参数替换
  • 原文地址:https://www.cnblogs.com/duanqiao123/p/9026510.html
Copyright © 2020-2023  润新知