分類  >  Web前端 >

禁用瀏覽器退後按鈕

tags:    時間:2013-12-10 00:57:58
禁用瀏覽器後退按鈕

為解決瀏覽器後退按鈕禁用的方法,在網上搜索了幾個方法,雖然可用但是沒有太完美的...

1、

<script language="JavaScript">

   

         javascript:window.history.forward(1); //我目前先用著這個

</script>

利用JS產生一個「前進」的動作,以抵消後退功能,這種方法應該是最簡潔的,並且不需要考慮用戶連點兩次或多次「後退」的情況,缺點是當用戶端禁用了JavaScript之後即失效。

2、

<A HREF="logout.do" onclick="javascript:location.replace(this.href); event.returnValue=false; ">       

Logout (Back Disabled)

</A>

這種方法用鏈接頁面的URL替換了當前的歷史紀錄,這樣瀏覽歷史記錄中就不會有本頁面,後退按鈕將不能回到本頁面。用戶點擊「Logout」鏈接註銷並執行新頁面,這時當用戶點擊「後退」按鈕將不能回到本頁,而是回到在本頁之前打開的那個頁面。

也就是說,這種方法清除的是最後一個訪問歷史記錄,而不是全部的訪問記錄,這是該方法的一個缺點,當然可以在每一個業務頁面都添加這段代碼作為保護。另外,和上一種方法相同,當用戶端禁用了JavaScript之後即失效。

3、

<script language="JavaScript">

  

function logout()

{

    window.close(true);

    window.open("logout.do");

}

</script>

<button onClick="logout()">Logout</button>

這種方法比較偷懶,關掉瀏覽器再重新開,經過我的測試在視覺上幾乎感覺不出來延時,同時又保證了後退按鈕不可用(新窗口瀏覽器後退按鈕為灰色),看起來似乎是個好方法,但缺點也比較明顯:

首先,關閉和重開的瀏覽器窗口大小可能不同,用戶可以明顯看出這一過程,並且在一定程度上影響操作。

其次,同上,這是一個JavaScript方法。

以上方法都是針對「後退」按鈕作出的反應,客戶端瀏覽器需要打開JavaScript代碼,下面嘗試從另一角度來解決這一問題:

4、禁止緩存

<%

        response.setHeader("Cache-Control", "no-cache");

       

        response.setHeader("Cache-Control", "no-store");

       

        response.setDateHeader("Expires", 0);

       

        response.setHeader("Pragma", "no-cache");

%>

這種方法使用伺服器端腳本,強制瀏覽器重新訪問伺服器下載頁面,而不從緩存讀取,結合struts jsp頁面中的<logic>標籤實現重新定向。

以上各種方法都有一定的局限,雖然是一個小問題,可是考慮到頁面安全的因素,卻不得不重視。

 

摘自:http://blog.csdn.net/deepwishly/article/details/7347451

推薦閱讀文章

Bookmark the permalink ,來源:互聯網