JavaScript控制瀏覽器返回(新方案)

來源:互聯網
上載者:User

假如我們有一個這樣的操作流程

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的.

還沒有支研究過啊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.