页面间固定参数,通过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中的parseInt和parseFloat区别
Jul 12 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
JS打字效果的动态菜单代码分享
Aug 21 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 Javascript
JS原型对象操作实例分析
Jun 06 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
Ant design vue中的联动选择取消操作
Oct 31 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
2015年学习部工作总结范文
2015/03/31 职场文书
项目备案申请报告
2015/05/15 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL