頁面間固定參數(shù),通過cookie傳值的實現(xiàn)方法
最后在做的頁面,比如用戶數(shù)據(jù)(用戶頭像,名稱,年齡)這些信息,因為大部分頁面都要用,之前是通過url地址傳,另一頁面接收??紤]到這樣做會讓url過長,因此,嘗試使用cookie,把固定的值保存在cookie,其它頁面拿出來就可以使用。
在此之前,先寫通過url傳值與取值的過程。url通過跳轉(zhuǎn)頁面,給跳轉(zhuǎn)頁的url問號后拼接參數(shù)的方法傳值:
//問號后的userId / dialogId都是要傳的參數(shù) //如果有多個參數(shù),就用“&”拼接 window.location.href = 'doctor_ask.html?userId=' + userId + "&dialogId=" + dialogId;
在doctor_ask.html頁面,把在url中的參數(shù)取下來,要使用一個方法getQueryString(),其中有一個方法是用來獲取url中含有中文參數(shù)的:
/* 獲取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中中文參數(shù)的方法 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 "請選擇"; }
使用方法獲取參數(shù):
//調(diào)用方法獲取參數(shù),方法中的參數(shù)名是一個字符串 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中對象,可以取出這個對象并將對象轉(zhuǎn)換為字符串
var userData = $.cookie('userData'); if(userData){ //JSON.parse() 將字符串解析為對象,方便使用 userData = JSON.parse(userData); };
兩個知識點:
//字符串解析為對象 JSON.parse(對象名稱); //對象解析為字符串 JSON.stringify(對象名稱);
以上這篇頁面間固定參數(shù),通過cookie傳值的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值
很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼2011-10-10淺談Javascript中substr和substring的區(qū)別
這篇文章主要介紹了Javascript中substr和substring的區(qū)別,非常的簡單明了,有需要的小伙伴可以來仔細(xì)看看。2015-09-09JavaScript獲取并更改input標(biāo)簽name屬性的方法
這篇文章主要介紹了JavaScript獲取并更改input標(biāo)簽name屬性的方法,涉及javascript針對表單元素屬性的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07