zoukankan      html  css  js  c++  java
  • 页面间固定参数,通过cookie传值

    最后在做的页面,比如用户数据(用户头像,名称,年龄)这些信息,因为大部分页面都要用,之前是通过url地址传,另一页面接收。考虑到这样做会让url过长,因此,尝试使用cookie,把固定的值保存在cookie,其它页面拿出来就可以使用。

    • 在此之前,先写通过url传值与取值的过程。url通过跳转页面,给跳转页的url问号后拼接参数的方法传值:
    //问号后的userId  /  dialogId都是要传的参数
    //如果有多个参数,就用“&”拼接
    window.location.href = 'doctor_ask.html?userId=' + userId + "&dialogId=" + dialogId;

    在doctor_ask.html页面,把在url中的参数取下来,要使用一个方法getQueryString(),其中有一个方法是用来获取url中含有中文参数的:

    /* 获取url后的某一个query的值 */
    function getQueryString( name ) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
        var context = "";
        if (r != null)
        context = r[2];
        reg = null;
        r = null;
        return context == null || context == "" || context == "undefined" ? "" : context;
    }
    
    //获取Url中中文参数的方法
    function getQueryUrlString(name) {
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        var r = window.location.search.substr(1).match(reg);
        if(r != null) {
            return decodeURI(r[2]);
        }
        return "请选择";
    }

    使用方法获取参数:

    //调用方法获取参数,方法中的参数名是一个字符串
    var userId = getQueryString('userId')
    • 第二种,通过cookie方法传值,我这里使用的是jQuery cookie,因此需要先加载jQuery与cookie:
    <!--使用cookie-->
    <script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
    <script src="http://code.changer.hk/jquery/plugins/jquery.cookie.js"></script>

    在其中一个页面,比如首页,将要保存的值存放在cookie.

    如果仅是一个id,直接使用键值对的方法保存即可:

    //将id保存在cookie
    $.cookie('doctorId', '11916111-f2eb-11e4-b756-f40669963d49');
    //从cookie中取出id
    var doctorId = $.cookie('doctorId');

    如果是多个值,需要将多个值放在对象中,保存这个对象:

    //将多个值存放在对象中
    var userData = {
       userId: "11916122-f2eb-11e4-b756-f40669963d49",
       patientName: "张丽",
       patientAge: 23,
       patientSex: "F"
    }
    //将这个对象保存在cookie,它的键是对象名称,值为JSON.stirng(),目的是将这个对象解析为字符串,因为cookie的键与值都是字符串
    $.cookie('userData' , JSON.stringify(userData));

    如果在其它页面使用这个cookie中对象,可以取出这个对象并将对象转换为字符串

    var userData = $.cookie('userData');
    if(userData){
    //JSON.parse()  将字符串解析为对象,方便使用
       userData =  JSON.parse(userData);    
    };

    两个知识点:

    //字符串解析为对象
    JSON.parse(对象名称);
    //对象解析为字符串
    JSON.stringify(对象名称);
  • 相关阅读:
    把安卓QQ浏览器下载的视频m3u8列表文件转成mp4格式(或者其它视频格式)
    Win8系统删除历史用户本地头像
    大叔郑州街头卖刀 这口才应该上春晚啊
    从尽力而为到全力以赴
    用虚假邮箱注册微博
    百度网盘总结
    试用Sublime Text 3
    玉米地烧毁,相关部门让找鸟儿去索赔
    Video Download Helper总结
    9.29
  • 原文地址:https://www.cnblogs.com/baiyygynui/p/6284710.html
Copyright © 2011-2022 走看看