/*
* 功能:設置cookie
* 參數:
* _name cookie名稱
* _value 該cookie名稱所對應的數據
* _date 該cookie的過期時間,單位天
* 返回值:無
* 示例:
* setCookie("a", "10", 1); 創建或修改一個cookie,名稱叫做a,值為"10",過期時間為1天后
* setCookie("a", "10"); 創建或修改一個cookie,過期時間為會話(會話指頁面打開到關閉的時間有效)
* setCookie("a", "10", -1); 刪除名稱叫做a的這個cookie
*/
function setCookie(_name, _value, _date){
// 創建一個對象
var obj = {
"tmp" : _value
}
console.log( "obj : ", obj );
// 將對象轉為字符串
var str = JSON.stringify(obj); // str='{"tmp":_value}'
console.log( "str : ", str );
str = encodeURIComponent(str); // 中文編碼
console.log( "str : ", str );
// 存儲cookie
if( _date ){ // 如果有輸入這個參數,則表示設置一個具體的時間
var d = new Date();
d.setDate( d.getDate()+_date );
document.cookie = _name+"="+str+"; path=/; expires="+d.toGMTString();
}else{ // 沒有設置_date這個參數時,創建和修改的cookie的過期時間為會話
document.cookie = _name+"="+str+"; path=/;";
}
}
/*
* 功能:獲取cookie
* 參數:
* _name 指cookie名稱
* 返回值:存儲的內容
* 示例:
* getCookie("a")
*/
function getCookie(_name){
// 找到所有的cookie
var str = document.cookie; // str="a=1; b=2; c=3"
// 字符串轉數組
var arr = str.split("; ");// 注意分號后面有一個空格 arr = ["a=1", "b=2", "c=3"]
// 循環
for( var i=0,l=arr.length; i<l; i++ ){
var col = arr[i].split("="); // arr[i]="a=1" col = ["a", "1"]
if( col[0] == _name ){
//return decodeURIComponent(col[1]); // 下標0指cookie名稱,下標1指cookie值
// _name所對應的cookie
console.log("col[1] : ", col[1]);
var str = decodeURIComponent(col[1]);
console.log("str : ", str);
// 字符串轉為json對象
var obj = JSON.parse(str);
console.log("obj : ", obj);
// 在json對象中,獲取tmp屬性
return obj.tmp;
}
}
// 如果循環結束后,也沒有找到_name,直接返回空
return ""; // 如果此處不寫,則返回undefined
}