【JavaScript】页面之间传值的方法

在前端开发中我们常常需要从一个跳到另一个页面,并且将当前页面的数据传递过去,总结一下我的方法:

 1 通过URL传值

缺点:传输的值不能太大,因为浏览器对与URL的长度是有限制的。

redemption.html?windcode=001992.OF&holdAmount=630451.65&fundName=农银汇理天天利B&id=65&origin=position

2 通过localStorage 和 sessionStorage 先存本地再取出数据

2.1 共同点

都是保存在浏览器端,且同源的,一样都是用来存储客户端临时信息的对象。他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。

2.2 区别

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

2.3 存值

用法:.setItem( key, value)

代码示例:

sessionStorage.setItem("key", "value");localStorage.setItem("site", "js8.in");

2.4 取值

用法:.getItem(key)

代码示例:

var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");

2.5 存取对象

localstarage和sesionstorage 只能存储字符串类型值,对象类型的值可以先进行转化

例如:

var obj = { name:'Jim' }; var str = JSON.stringify(obj); //存入sessionStorage.obj = str; //读取str = sessionStorage.obj; //重新转换为对象obj = JSON.parse(str);

所以如果要存储的数据是一个对象的话,就需要将对象转换为字符串,在取数据的在将字符串转为对象就可以了

对象转字符串  JSON.stringify( " 对象 " )

字符串转对象  JSON.parse( " 字符串 " )

3 JavaScript通过Window.open传值

这两窗口之间存在着关系,父窗口index.html打开子窗口single.html子窗口可以通过window.opener指向父窗口,这样可以访问父窗口的对象,在single.html页面编写下面的代码:

4. 通过cookie方法传值,我这里使用的是jQuery cookie,因此需要先加载jQuery与cookie:



在其中一个页面,比如首页,将要保存的值存放在cookie.

如果仅是一个id,直接使用键值对的方法保存即可:

4.1 单个值

//将id保存在cookie
$.cookie('doctorId', '11916111-f2eb-11e4-b756-f40669963d49');//从cookie中取出id
var doctorId = $.cookie('doctorId');

4.2 多个值

如果是多个值,需要将多个值放在对象中,保存这个对象:

//将多个值存放在对象中
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);  
};


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部