1个站点 全是AJAX 局部刷新 ,所以不具备后退功能,现在实现了后退 是把每一次的操作 的URL都保存起来,回退的时候再依次从新AJAX 造成后退的效果。。 封装这些URL的数组 在刷新后全清空了 后退就没有用了 。试了下IFRAME 的PARENT.XXX的不行。现在貌似只能用COOKIE了 。
但是感觉很不好搞。每一次操作是1个记录URL的数组。我AJAX一次 往URL 数组里添加一条记录。怎么能保证COOKIE里跟这个数组一样随时变换啊。。好乱啊 希望高人赐教 在下不才。。
但是感觉很不好搞。每一次操作是1个记录URL的数组。我AJAX一次 往URL 数组里添加一条记录。怎么能保证COOKIE里跟这个数组一样随时变换啊。。好乱啊 希望高人赐教 在下不才。。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function setCookie(name,value)
{
var d = 365, expires = new Date( new Date().getTime() + d * 24 * 60 * 60 * 1000 );
document.cookie = name + "=" + escape (value) + ";expires=" + expires.toGMTString();
}
function getCookie(name)
{
var val = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
return (val ? unescape(val[2]) : null);
}
function delCookie(name)
{
var expires = new Date( new Date().getTime() - 1 ), val = getCookie(name);
val && (document.cookie= name + "=" + val + ";expires=" + expires.toGMTString());
}
var urls;
window.onload = function(){
//delCookie("url"); return;
urls = getCookie("url");
urls = urls ? urls.split("||") : [];
urls.push(window.location.href);
setCookie("url", urls.join("||"));
document.getElementById("val").innerHTML = urls.length;
if(urls.length == 1){
document.getElementById("goNext").disabled = true;
}
};function getNext(){
var url = window.location.href.split("?")[0] + "?n=" + urls.length;
window.location.href = url;
}function getPrev(){
if(urls.length > 1){
urls.pop();
var url = urls.pop();
setCookie("url", urls.join("||"));
window.location.href = url;
}
}
</script>
</head><body>
<div id="val"></div>
<input type="button" value="前进" onclick="getNext()" /> -
<input type="button" id="goNext" value="后退" onclick="getPrev()" />
</body>
</html>
Google 牛啊