赞
踩
在HTML中,页面跳转后,js和HTML都会刷新,这样数据就会初始化,如果要解决页面跳转互传数据,可以考虑cookie。
对于页面跳转,然后页面返回等一系列操作,cookie中数据模拟堆栈出栈可以实现。我模拟了一个,大家可以看看,并且这个也比较好扩展。
这个是对于所有的cookie简单的增删改操作。
//获得coolie 的值
function cookie(objName){
var cookieArray=document.cookie.split(";"); //得到分割的cookie名值对
var cookie=new Object();
for (var i=0;i
var arr=cookieArray[i].split("="); //将名和值分开
if(arr[0]==objName)return unescape(arr[1]); //如果是指定的cookie,则返回它的值
}
return "";
}
//删除cookie
function delCookie(objName){
document.cookie = objName+"=;expires="+(new Date(0)).toGMTString();
}
//获取指定名称的cookie的值
function getCookie(objName){
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++){
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
//添加cookie
function addCookie(objName,objValue,objHours){
var str = objName + "=" + escape(objValue);
var Hours=objHours||7*24; //如果没有设定cookie时间,默认为7天
var date = new Date();
var ms = Hours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
document.cookie = str;
}
//三个参数,一个是cookie的名子,一个是值,一个是保存的时间
function SetCookie(objName,objValue,objHours)
{
var Hours=objHours||7*24;//如果没有设定cookie时间,默认为7天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Hours*3600*1000);
document.cookie = objName + "="+ escape (objValue) + ";expires=" + exp.toGMTString();
}
function getCookie(objName)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+objName+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(objName)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(objName);
if(cval!=null) document.cookie= objName + "="+cval+";expires="+exp.toGMTString();
}
这个是cookie的压栈出栈,例子中是存储两个数据,可以扩展。页面跳转时进栈,页面返回时出栈。Mark用于标注栈顶。
function InitCookie(){
var mark=0;
SetCookie("Mark",mark);
}
//获取当前页面信息的ID
function GetTopInfo(){
var mark=getCookie("Mark");
return getCookie("InfoID"+mark);
}
//设置当前页面信息的ID
function SetTopInfo(InfoID){
var mark=getCookie("Mark");
SetCookie("InfoID"+mark,InfoID);
}
//获取当前页面信息的Status
function GetTopStatus(){
var mark=getCookie("Mark");
return getCookie("Status"+mark);
}
//设置当前页面信息的Status
function SetTopStatus(Status){
var mark=getCookie("Mark");
SetCookie("Status"+mark,Status);
}
//压站
function PushInfo(objValue,Status){
var mark=Number(getCookie("Mark"));
mark++;
addCookie("InfoID"+mark,objValue);
addCookie("Status"+mark,Status);
SetCookie("Mark",mark);
}
//出站
function PopInfo(){
var mark=Number(getCookie("Mark"));
delCookie("InfoID"+mark);
delCookie("Status"+mark);
mark--;
SetCookie("Mark",mark);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。