页面间固定参数,通过cookie传值的实现方法


Posted in Javascript onMay 31, 2017

最后在做的页面,比如用户数据(用户头像,名称,年龄)这些信息,因为大部分页面都要用,之前是通过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(对象名称);

以上这篇页面间固定参数,通过cookie传值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
May 29 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
详解vuex状态管理模式
Nov 01 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
koa2的中间件功能及应用示例
Mar 05 Javascript
jQuery带控制按钮轮播图插件
Jul 31 jQuery
基于react框架使用的一些细节要点的思考
May 31 #Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 #Javascript
使用原生js写ajax实例(推荐)
May 31 #Javascript
Javascript创建类和对象详解
May 31 #Javascript
Javascript继承机制详解
May 30 #Javascript
Vue2.x中的Render函数详解
May 30 #Javascript
jQuery实现动态删除LI的方法
May 30 #jQuery
You might like
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
js压缩利器
2007/02/20 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
python迭代器与生成器详解
2016/03/10 Python
python tornado微信开发入门代码
2018/08/24 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Django nginx配置实现过程详解
2020/09/10 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
保安岗位职责
2014/02/21 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
机械工程师岗位职责
2014/06/16 职场文书
党章培训心得体会
2014/09/04 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
普宁寺导游词
2015/02/04 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
劳动模范获奖感言
2015/07/31 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis