The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

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

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

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

function gotoUrl(url)
{
    // 取得歷史網址的長度
    var len = history.length;
    
    // 先回到 IE 啟動時的第一頁
    history.go(-len);

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

    return false;
}

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

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

<a href="/logout.aspx" onclick="gotoUrl('/logout.aspx');">登出</a>

當你使用這個技巧連結到 /logout.aspx 網頁後,即可進行登出動作,並在 logout.aspx 程式直接利用 Response.Redirect 轉址回首頁,這樣你就會發現回首頁之後所有歷史紀錄都消失了,就好像沒登入過一樣!^_^