当前位置:   article > 正文

js请求返回一个页面html页面跳转页面,JS cookie操作 解决页面跳转返回

js带cookie打开新页面

在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);

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/149821?site
推荐阅读