如何透過 JavaScript 取消 IE 的「回上一頁」功能

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

如何透過 JavaScript 取消 IE 的「回上一頁」功能

文章 yehlu »

http://blog.miniasp.com/post/2009/03/18 ... cript.aspx

有時後我們會希望 User 在使用「登出」功能後,不要再讓他用 IE 的 回上一頁 按鈕功能,因為回上一頁其實也看不到東西 (因為已經登出了),但確有可能導致網頁出現錯誤畫面或權限不足之類的錯誤,我今天就分享一個 JavaScript 開發技巧,讓你徹底消除 IE 的 URL 瀏覽紀錄。

我寫了一個簡單的 JavaScript function 如下,主要程式僅三行而已:

view plaincopy to clipboardprint?
function gotoUrl(url)
{
// 取得歷史網址的長度
var len = history.length;

// 先回到 IE 啟動時的第一頁
history.go(-len);

// 再將網址轉向到目的頁面 ( 注意: 一定要用 location.replace 函式 )
location.replace(url);

return false;
}
只要透過這個 gotoUrl 函式進行轉址動作,User 的 IE 所有之前的歷史紀錄都會消失,不過這個技巧僅適用於 Internet Explorer 而已。

若要使用這個函式範例如下:

view plaincopy to clipboardprint?
<a href="/logout.aspx" onclick="gotoUrl('/logout.aspx');">登出</a>
當你使用這個技巧連結到 /logout.aspx 網頁後,即可進行登出動作,並在 logout.aspx 程式直接利用 Response.Redirect 轉址回首頁,這樣你就會發現回首頁之後所有歷史紀錄都消失了,就好像沒登入過一樣!^_^
回覆文章

回到「Java Script」