不想留下網頁的歷史紀錄


bensy 發表



歷史 紀錄 清單 javascript

在網站瀏覽過程裡, 瀏覽器會自動紀錄下曾經看過的網頁,
除非你利用瀏覽器的設定將其刪除,
否則隨時可以經由 [上一頁] [下一頁] 按鍵, 前往任何曾經瀏覽過的網頁。

在下列幾種情形裡, 我們不希望網頁的瀏覽歷史被紀錄下來:

1. 網頁中牽涉到資料庫, 不論是新增、修改、刪除,
 如果已經處理過一筆資料, 因為不小心經由 [上一頁] [下一頁] 按鍵,
 又重複處理那筆資料, 資料庫必定產生錯誤!
 在這種情形下, 若能讓處理資料的那個網頁不留歷史紀錄, 那就問題解決了!

2. 想要隱藏某些網頁。


我的做法是這樣的:

在不想留下紀錄的網頁裡,
利用 Javascript 的 history.go(-1) 或 history.back() 跳到前一頁,
再利用 location 指令轉換到一個新網頁 goback.htm,
此網頁則再度運用 history.go(-1) 或 history.back() 自動跳回前頁。

因為轉換到新網頁會刪除其後的舊歷史清單,
這麼一來, 便可不留任何痕跡了!


example.htm
<HTML><HEAD><TITLE>網頁舉例</TITLE></HEAD>
<BODY>

<CENTER><A HREF='choice.htm'>連結到選擇不留歷史紀錄的網頁</A></CENTER>

</BODY>
</HTML>


choice.htm
<HTML><HEAD><TITLE>處理前此網頁保留歷史紀錄!</TITLE></HEAD>
<BODY>

<CENTER><FONT SIZE=3>處理前此網頁保留歷史紀錄!</FONT></CENTER>
<CENTER><A HREF='delhis.htm'>處理後此網頁不留歷史紀錄</A></CENTER>

</BODY>
</HTML>


delhis.htm
<HTML><HEAD><TITLE>不留歷史紀錄之後的網頁,當然也不會留</TITLE></HEAD>
<BODY>

// 如果有資料要處理, 那就在此網頁的這個地方進行!
// 資料處理完就自動跳回原來網頁的前一頁 (example.htm),
// 所以決定處理資料的那個網頁 (choice.htm), 歷史紀錄就不會保留了。
// 當然, 處理資料的網頁 (delhis.htm), 即這個網頁, 也不會留下歷史紀錄。

// 假如原來網頁的前一頁 (example.htm) 不存在,
// 那就強制留在要求自動回到前頁的那個網頁 (goback.htm)!

<SCRIPT language='JavaScript'>
<!--
history.go(-1);
location = 'goback.htm';
//-->
</SCRIPT>

</BODY>
</HTML>


goback.htm
<HTML><HEAD><TITLE>自動回到前頁!</TITLE></HEAD>
<BODY>

<SCRIPT language="JavaScript">
<!--
history.go(-1);
//-->
</SCRIPT>

</BODY>
</HTML>


最後更新日期: 8/17/2004 1:13:49 PM