页面间固定参数,通过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 相关文章推荐
Js 刷新框架页的代码
Apr 13 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
前台js对象在后台转化java对象的问题探讨
Dec 20 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
微信小程序组件之srcoll-view的详解
Oct 19 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
深入浅析JSONAPI在PHP中的应用
Dec 24 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
微信小程序解析富文本过程详解
Jul 13 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 Javascript
微信小程序实现列表左右滑动
Nov 19 Javascript
基于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重定向的3种方式
2013/03/07 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
php调用shell的方法
2014/11/05 PHP
简单谈谈favicon
2015/06/10 PHP
PHP6新特性分析
2016/03/03 PHP
Jquery实现简单的动画效果代码
2012/03/18 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python操作日期和时间的方法
2014/03/11 Python
python处理xml文件的方法小结
2017/05/02 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
python自动生成证件号的方法示例
2021/01/14 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
幼儿园小班评语大全
2014/04/17 职场文书
员工安全生产责任书
2014/07/22 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
小学优秀学生评语
2014/12/29 职场文书
运动会加油稿50字
2015/07/21 职场文书
初中军训感言
2015/08/01 职场文书