欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-01 15:57:52
最后在做的页面,比如用户数据(用户头像,名称,年龄)这些信息,因为大部分页面都要用,之前是通过url地址传,另一页面接收。考虑到这样做会让url过长,因此,尝试使用cook...

最后在做的页面,比如用户数据(用户头像,名称,年龄)这些信息,因为大部分页面都要用,之前是通过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传值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。