页面间固定参数,通过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中的undefined,null,&quot;&quot;,0和false
Mar 08 Javascript
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
jQuery事件详解
Feb 23 Javascript
p5.js实现斐波那契螺旋的示例代码
Mar 22 Javascript
简述JS浏览器的三种弹窗
Jul 15 Javascript
快速了解Node中的Stream流是什么
Feb 13 Javascript
vue实现在线学生录入系统
May 30 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
15种PHP Encoder的比较
2007/03/06 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
Python函数装饰器实现方法详解
2018/12/22 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python 实现图片裁剪小工具
2021/02/02 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
生日宴会策划方案
2014/06/03 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
营销经理工作检讨书
2014/11/03 职场文书
党员带头倡议书
2015/04/29 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers