假如我们有一个这样的操作流程
1.我们有两个页面,一个显示页show.html,一个增加信息页add.html
2.在show.html中点击增加信息的时候.就跳到add.html页
3.在add.html中有一个返回按钮,当然有一个提交按钮
4.每点击一次提交的时候,页面就刷新一次
问题:
当点击了N次提交后.我点击返回,我要怎么样返回到show.html,
当然不能在服务器用Response.Redirect(“show.html”).
用JavaScript实现

Code
//在add.html写如下JS脚本

<script language="javascript" type="text/javascript">

//点击提交的时候执行

function add_btn_accept_click()



{

location.href=_Fun_getNextUrlString();

}

//点击返回的时候执行

function add_btn_back_click()



{

if(location.hash=="")


{
history.go(-1);
}else


{
var _hashNum= parseInt(location.hash.substring(1),10);
history.go(_hashNum);
}

}

//这里就是自己写的一个URL方法

function _Fun_getNextUrlString()



{

//定义一个新的URL变量

var _newUrl="";

//得到路径
var _pathName=location.pathname;

//得到参数
var _search = location.search;

//在参数里加一个随机数据,保证每次加载的页都刷新一次
var _randIndexOf=_search.indexOf("&rand=");
var _addUrl="&rand="+Math.random();
if(_randIndexOf != -1)


{
_search=_search.substring(0,_randIndexOf);
}

//这里是最主要的,

//就是在URL地址后面加一个anchor

//每提交一次.anchor就减1.

//这样就知道你提交了多少次
if(location.hash=="")


{
_newUrl=_pathName+_search+_addUrl+"#-2";
}else


{
var _nextHash=parseInt(location.hash.substring(1),10) - 1;
var _hash="#"+_nextHash;
_newUrl = _pathName+_search+_addUrl+_hash;
}

//返回自定义的URL
return _newUrl;

}

</script>


比如开始你的地址是
http://liuju150.cacacoo.com/add.html
当还没有提交一次的时候.你点击返回.
add_btn_back_click()
这个里面就看你URL后面有没有你的hash值(#12)
所以就知道你是第一次打开.所以就直接返回到前一个页
你每提交一次.
URL后面
http://liuju150.cacacoo.com/add.html?rand=0.12432#-2
http://liuju150.cacacoo.com/add.html?rand=0.12432#-3
http://liuju150.cacacoo.com/add.html?rand=0.12432#-4
后面的数字就加一次.
当你到了N次的时候.
http://liuju150.cacacoo.com/add.html?rand=0.12432#-n
你只要知道这个N是多少.你就可以通知浏览器你要返回历史记录的前多少条
有时候.真的会说Response.Redirect(“show.html”)这样一下就可以了
可是我在做一个项目的时候.就有这样的事.
做了一个用户控件,这个控件里要有一个返回按钮
你就不知道这个返回要返回到哪里去了
看看这里
http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html
这里是效果
http://liuju150.cacacoo.com/
现在只有一个增加页的提交按钮
要是我加一个返回.就可能要用到这个了
好像看到网上还有一种是记录COOKIE的.
还没有支研究过啊