當(dāng)我們在使用ajax時通常會遇到使用history.back()或history.go(-1)的情況,這樣在返回ajax頁面時通常會時ajax的數(shù)據(jù)丟失(不是你最后一次選擇的ajax數(shù)據(jù));這種情況下我們需要保存ajax的參讓其能在history.back()中起到作用;昨天晚上試了很多方法都不行;這個時候我們就需要利用history.back()返回的是上一個鏈接的特點通過window.location.hash來存在ajax所用到的值,下面是代碼試?yán)?
function getSetMeal(obj)
{
window.location.hash = obj.value;
var param = "test="+obj.value;
new Ajax("test.do",{method:'post',onComplete:setMainSuit}).request(param);
}
{
window.location.hash = obj.value;
var param = "test="+obj.value;
new Ajax("test.do",{method:'post',onComplete:setMainSuit}).request(param);
}
在頁面時調(diào)用時
<script>
var first = "$!{first}"||-1;
var hash=window.location.hash;
if(hash!="")
{
//這里的參數(shù)解析你可以用自己的方法實現(xiàn);
var str = hash.replace('#','');
var obj=new Object();
obj.value=str;
getSetMeal(obj);
}
else if(first!=-1)
{
var obj=new Object();
obj.value=first;
getSetMeal(obj);
}
</script>
var first = "$!{first}"||-1;
var hash=window.location.hash;
if(hash!="")
{
//這里的參數(shù)解析你可以用自己的方法實現(xiàn);
var str = hash.replace('#','');
var obj=new Object();
obj.value=str;
getSetMeal(obj);
}
else if(first!=-1)
{
var obj=new Object();
obj.value=first;
getSetMeal(obj);
}
</script>
下面在介紹一種情況的解決辦法,當(dāng)你的ajax頁面還有返回上一個頁面時,如果你使用了hash存值的做法那么在使用history.go(-n)時是不好控制的,這時我們需要使用history.go(string)的方法準(zhǔn)確的說是history.go(url)說明上是返回最近的鏈接包含的串,不過我使用串沒有起作用只有使用url;代碼如下:
1 function back()
2 {
3 var domain=window.location.host;
4 var protocol=window.location.protocol;
5 //這個url是通過request.getHeader("Referer");來獲取的
6 var url = "$!{url}"||"-1";
7 //這樣是返回固定的這樣不好
8 //history.go(protocol+"http://"+domain+"/test1.do");
9 history.go(url);
10
11 }
12
2 {
3 var domain=window.location.host;
4 var protocol=window.location.protocol;
5 //這個url是通過request.getHeader("Referer");來獲取的
6 var url = "$!{url}"||"-1";
7 //這樣是返回固定的這樣不好
8 //history.go(protocol+"http://"+domain+"/test1.do");
9 history.go(url);
10
11 }
12